Extension fields
可以使用扩展字段复用配置片段。这些特殊字段可以是任意格式,只要它们位于Compose文件的根目录中并且其名称以x字符序列开头即可。
version: "3.9"
x-custom:
items:
- a
- b
options:
max-size: '12m'
name: "custom"
这些字段的内容被Compose忽略,但是可以使用YAML锚点将其插入资源定义中。例如,如果我们希望多个服务使用相同的日志记录配置:
logging:
options:
max-size: '12m'
max-file: '5'
driver: json-file
可以像下面这样书写Compose文件:
version: "3.9"
x-logging:
&default-logging
options:
max-size: '12m'
max-file: '5'
driver: json-file
services:
web:
image: myapp/web:latest
logging: *default-logging
db:
image: mysql:latest
logging: *default-logging
也可以使用YAML合并类型覆盖部分扩展字段中的值。例如:
version: "3.9"
x-volumes:
&default-volume
driver: foobar-storage
services:
web:
image: myapp/web:latest
volumes: ["vol1", "vol2", "vol3"]
volumes:
vol1: *default-volume
vol2:
<< : *default-volume
name: volume02
vol3:
<< : *default-volume
driver: default
name: volume-local
Last updated
Was this helpful?