Anchor And Alias in Yaml
YAML Anchor 與 Alias 範例說明
如何用 anchor(錨點)與 alias(別名)以及 <<:
合併鍵來重用設定:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 定義一個 anchor,設定 GPU 設置
x-gpu-enabled: &gpu-enabled
devices:
- driver: nvidia
count: all
capabilities:
- gpu
x-gpu-disabled: &gpu-disabled
devices: [] # 沒有 GPU
services:
service_with_gpu:
image: example/image
deploy:
resources:
reservations:
<<: *gpu-enabled # 將 gpu-enabled 設定合併過來
service_without_gpu:
image: example/image
deploy:
resources:
reservations:
<<: *gpu-disabled # 將 gpu-disabled 設定合併過來
[!note]
&gpu-enabled
宣告一個錨點名為 gpu-enabled,包含使用 GPU 的設定&gpu-disabled
宣告一個錨點名為 gpu-disabled,禁用 GPU 的設定
<<: *gpu-enabled
表示合併 gpu-enabled 錨點內的內容到此處 - 這樣寫可以讓多個地方重複使用同樣設定,避免 YAML 文件重複冗長這是一種讓 YAML 配置更加乾淨且易於維護的方式。
This post is licensed under CC BY 4.0 by the author.