当前位置: 首页 > 面试题库 >

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

松刚豪
2023-03-14
问题内容

我发现我有多个环境(例如测试和生产)是很常见的,但是我希望启动的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


问题答案:

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

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

  • https://github.com/docker/compose/issues/495
  • https://github.com/docker/compose/pull/76
  • https://github.com/docker/compose/pull/845

实际上,该问题在他们的问题存储库中的第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



 类似资料:
  • 我发现有多个环境(例如test和prod),但我希望启动的Docker容器在这两个环境中是相同的。唯一的区别是应用程序配置,我希望使用来指定它。因为我有多个容器和它们之间的依赖关系,所以我想使用docker-compose。但是afaik I只能在文件中指定(请参见文档)。如果是这种情况,那么我需要将原来的克隆到两个不同的文件(一个用于test,一个用于prod),以指向不同的env文件。这意味着

  • 我有两个类,它们具有相同的类名并使用相同的包名。但是,这两个类文件位于不同的目录中。这两个类之间的另一个不同之处是,每个类中都有其他类中没有的方法。本质上,我想将这些方法拆分为两个使用相同名称但不同文件夹的单独文件。 理论上,我认为这是可能的,因为Java编译器在构建输出时确实维护了目录结构。所以在运行时,如果在类中调用了一个方法,Java可能会在任何一个文件中找到该方法。 这可能吗?我使用的是I

  • 问题内容: 我正在尝试仅将原始文件从一个目录复制到另一个目录,但是某些文件具有相同的名称…我正在尝试使用哈希来比较文件,如果其不在目录中发送并且名称相同,它到file_name.something。目前,我正在获取一些文件,并且具有相同名称的文件正在被覆盖…任何人都可以提出建议吗? 问题答案: 您将哈希与文件名进行比较。你需要类似的东西 计算目标文件夹中每个文件的哈希值。 此外,在当前版本中,您的

  • A Zen student went up to a hot dog vendor and said: "Make me one with everything". — Joke 环境背景很重要。 如果你想对 Puppet 的配置清单在应用到生产环境之前先进行测试, 你可以使用 Puppet 的 environment 特性来做到。 这可以让你根据环境应用不同的配置清单来设置客户机。例如,你可以定

  • 这是使用两个不同文本查找元素的正确方法吗?因为该元素在两个不同的环境中有两个不同的文本。 .find()。withText()

  • 在Prod就绪的日志记录世界中,是否有类似于依赖于环境的日志记录配置文件的东西。我的意思是。通常情况下,不同的环境需要不同的细节级别。 实际上,它需要创建多个日志配置文件,当有许多环境时,添加新的记录器就变得非常痛苦。我要找的是: 对于某些Prod就绪的Java日志记录解决方案来说,这种情况是否存在?