当前位置: 首页 > 知识库问答 >
问题:

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

阎扬
2023-03-14

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

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

共有1个答案

陆甫
2023-03-14

请参见下面的更新#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
 类似资料:
  • 问题内容: 我发现我有多个环境(例如测试和生产)是很常见的,但是我希望启动的Docker容器在两种环境中都是相同的。唯一的区别是我想使用来指定的应用程序配置。由于我有多个容器以及它们之间的依赖关系,因此我想使用docker- compose 。但是afaik我只能在文件内部指定一个(请参阅docs)。如果是这种情况,那么我需要将我的原始文件克隆到两个不同的文件(一个用于测试,一个用于产品),以指向

  • 我如何配置Bean,从一个新的yml文件加载和工作所有属性,从另一个新的yml加载和工作另一个Bean?最佳实践是什么? 我发现了使用的示例,并且这个bean可以读取几个资源(yml文件),但是在另一个bean中,当我读取这个时,我无法获得特定的yml,因为这个的将包含我添加到其中的所有yml资源。

  • 我正在使用Grails 3.3.1和Spring boot。构建工具是gradle。所有与应用程序相关的属性都在application.yml文件中配置。 现在我想访问不同的。用于不同环境[开发、测试等]的yml文件。为此,我创造了不同的。每个环境的yml文件。用于运行服务器的命令是:grails-Dgrails。env=test run app Now当我访问任何属性时,它会提供来自应用程序测试

  • 我有两个类,它们具有相同的类名并使用相同的包名。但是,这两个类文件位于不同的目录中。这两个类之间的另一个不同之处是,每个类中都有其他类中没有的方法。本质上,我想将这些方法拆分为两个使用相同名称但不同文件夹的单独文件。 理论上,我认为这是可能的,因为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 特性来做到。 这可以让你根据环境应用不同的配置清单来设置客户机。例如,你可以定