Compose: Substituição global / padrão para todos os serviços

Criado em 19 abr. 2017  ·  3Comentários  ·  Fonte: docker/compose

O que eu quero fazer é separar meus ajustes específicos do ambiente em um override.yml, nada muito especial ... no entanto, minhas substituições serão exatamente as mesmas para cada serviço implantado e eu quero evitar ter que escrever a mesma substituição para todos serviço único (e continuamente adicionar novas seções à substituição conforme novos serviços são introduzidos).

Em vez disso, gostaria de criar uma definição que diga "aplique a esta substituição para todos os serviços". Já existe tal conceito que talvez eu esteja perdendo?

Exemplo ...

docker-compose.yml:

  aservice:
    image: whatever1
    environment:
      FOO: BAR

outro docker-compose.yml:

  anotherservice:
    image: whatever2

my docker-compose.override.yml:

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

Agora, cada serviço implantado teria servidor1 e servidor2 DNS e a variável de ambiente FLIBBLE.

Sei que poderia fazer isso se todos os serviços estivessem estendendo o mesmo serviço de base, pois eu poderia aplicar a substituição a isso, mas há alguma maneira de definir a substituição global / padrão sem uma extensão comum?

No momento, tenho um hack que envolve uma varredura de substituição gerada para quaisquer serviços definidos e gera o arquivo de substituição instantaneamente, mas parece um caso de uso em que não posso ser a primeira pessoa a encontrar, então me pergunto se talvez eu acabo de perder a solução óbvia para isso no compe.

kinquestion

Comentários muito úteis

Todos 3 comentários

Você poderia apenas ter um arquivo base.yml em cada pasta de projeto com um serviço base contendo apenas sua chave environment e, em seguida, fazer com que cada serviço estenda o serviço base .

Esta não é mais uma boa solução, visto que extends: foi removido em 3.x https://github.com/moby/moby/issues/31101

Esta página foi útil?
0 / 5 - 0 avaliações