一尘不染

不同的环境文件,但与Docker Compose相同的yml?

docker

我发现我有多个环境(例如测试和生产)是很常见的,但是我希望启动的Docker容器在两种环境中都是相同的。唯一的区别是我想使用来指定的应用程序配置env- file。由于我有多个容器以及它们之间的依赖关系,因此我想使用docker-
compose
。但是afaik我只能env-filedocker- compose.yml文件内部指定一个(请参阅docs)。如果是这种情况,那么我需要将我的原始docker- compose.yml文件克隆到两个不同的文件(一个用于测试,一个用于产品),以指向不同的环境文件。这意味着我必须维护两个docker- compose.yml文件,而不是一个文件;如果进行任何更改,则需要更新两个文件。

这真的是根据设计吗?为什么docker-compose不让我指定--env-file执行时间docker-compose updocker- compose run


阅读 497

收藏
2020-06-17

共1个答案

一尘不染

请参阅下面的更新2。 现在有可能!

这是Docker Compose急需的功能。不幸的是,目前的答案是你做不到。我建议订阅这些GitHub问题,以更好地了解何时以及是否实现此功能:

实际上,该问题在他们的问题存储库中的第495期实际上是评论最多的。您绝对不是唯一想这样做的人。

更新:

最新的问题跟踪位于https://github.com/docker/compose/issues/1377

更新#2:

此功能已合并,自Docker Compose
1.5.0起可用。有关使用信息,请参见https://github.com/docker/compose/blob/129092b7/docs/yml.md#variable-
substitution。

2020-06-17