Compose: 所有服务的全局/默认覆盖

创建于 2017-04-19  ·  3评论  ·  资料来源: docker/compose

我想要做的是将我的环境特定调整分离到一个 override.yml 中,没有什么特别的......但是我的覆盖对于部署的每个服务都完全相同,我想避免必须为每个服务写出相同的覆盖单个服务(并在引入新服务时不断向覆盖添加新部分)。

相反,我想创建一个定义,表示“将此覆盖应用于每个服务”。 这样的概念是否已经存在而我可能会遗漏?

例子 ...

docker-compose.yml:

  aservice:
    image: whatever1
    environment:
      FOO: BAR

另一个 docker-compose.yml:

  anotherservice:
    image: whatever2

我的 docker-compose.override.yml:

  <magickeyword>:
    environment:
      FLIBBLE: flobble
    dns:
      - server1
      - server2

现在,部署的每个服务都将拥有 DNS server1 和 server2 以及环境变量 FLIBBLE。

我意识到如果所有服务都扩展相同的基本服务我可以做到这一点,因为我可以对其应用覆盖,但是无论如何要设置全局/默认覆盖而不使用通用扩展?

目前,我有一个 hack,它涉及对任何定义的服务生成覆盖扫描并即时生成覆盖文件,但这似乎是一个用例,我不能成为第一个遇到的人,所以想知道我是否刚刚错过了在 compose 中解决此问题的明显解决方案。

kinquestion

最有用的评论

所有3条评论

您可以在每个项目文件夹中有一个base.yml文件,其中base服务仅包含您的environment密钥,然后让每个服务扩展base服务。

鉴于extends:在 3.x https://github.com/moby/moby/issues/31101 中被删除,这不再是一个好的解决方案

此页面是否有帮助?
0 / 5 - 0 等级