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