gpt4 book ai didi

docker - 是否可以在 docker compose 文件中为服务设置全局设置?

转载 作者:行者123 更新时间:2023-12-04 16:25:23 27 4
gpt4 key购买 nike

是否可以在 Docker 撰写文件中为服务指定全局设置?
例如,以这个 Docker Compose 文件为例:

version: "3.9"

services:
test1:
env_file: /path/to/env/file
image: test
container_name: test1
ports:
- "1234:22"
networks:
- dmz
restart: always
test2:
env_file: /path/to/env/file
image: test
container_name: test2
ports:
- "2345:22"
networks:
- trust
restart: always

networks:
dmz:
driver: bridge
trust:
driver: bridge
我不想有 env_file: /path/to/env/file对于每项服务,并希望使其适用于所有服务。我知道我可以通过 docker-compose命令行,但我希望从 Docker 撰写文件中执行此操作。

最佳答案

尽管@timsmelik 的回答指出了正确的方向并展示了如何使用带有标量值的 yaml anchor 和别名,但您可能可以利用 merge key yaml feature在这里为您的服务设置可覆盖的默认值。
这是一个例子来说明

version: "3.9"

x-service_defaults: &service_defaults
env_file: /path/to/env/file
image: test
restart: always

services:
test1:
<< : *service_defaults
container_name: test1
ports:
- "1234:22"
networks:
- dmz
test2:
<< : *service_defaults
container_name: test2
ports:
- "2345:22"
networks:
- trust
test3:
<< : *service_defaults
env_file: /some/override/env/file
container_name: test3
volumes:
- /some/bind/dir:/whatever/target

networks:
dmz:
driver: bridge
trust:
driver: bridge
您可以在 the following blog post 中找到适用于 docker-compose 文件的所有可能的 yaml anchor /别名用法的非常全面的解释。

关于docker - 是否可以在 docker compose 文件中为服务设置全局设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65515866/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com