gpt4 book ai didi

docker - Docker-compose:替换extend关键字

转载 作者:行者123 更新时间:2023-12-02 21:04:56 29 4
gpt4 key购买 nike

从docker docs:

Docker Compose’s extends keyword enables sharing of common configurations among different files, or even different projects entirely. Extending services is useful if you have several services that reuse a common set of configuration options. Using extends you can define a common set of service options in one place and refer to it from anywhere.



由于某些原因,此功能为 removed in version 3

还发现了 this thread,但它已停用了2年。

我正在尝试在较新的版本中找到此功能的替代品。

想听听是否有人找到了extends的替代品。

谢谢。

最佳答案

有两种方法可以满足您的需要,您可以决定同时使用其中一种或两种方法,因为它们的工作方式略有不同:

多个撰写文件

您可以在运行docker compose命令时指定多个compose文件,例如,可以使用以下命令设置项目:

docker-compose -f config1.yml -f config2.yml up

您还可以使用环境变量来指定文件:
COMPOSE_FILE=config1.yml:config2.yml docker-compose up

发生的事情是docker compose创建了一个配置,将您在每个配置中定义的内容进行合并。
这里的文档显示 how to merge multiple compose files

您还可以运行 config command生成最终的配置文件。

YAML anchor

由于docker compose文件基本上是YAML文件,因此您可以利用YAML anchor 来定义属性块,并将其在配置的多个部分中重用。

例如:
version: '3'

common: &common
image: "myrepo/myimage"
restart: "unless-stopped"
volumes:
- "volume:/mnt/myvolume"

services:
service1:
<<: *common
ports:
- "5000:5000"

service2:
<<: *common
environment:
- MYENV: value

关于docker - Docker-compose:替换extend关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58673249/

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