Olá boa tarde! Sim, Tenho um docker-compose em cada repositório, o cenário é bem parecido com o que o @pauloleal falou ali, ou seja, tenho vários repositórios separados mas que os serviços se comunicam entre si, e quando quero rodar localmente todo o ecossistema de microservices, preciso abrir cada pasta e rodar o docker compose up
, só que são 14 serviços, então são 14 terminais abertos, com eu rodando docker compose up
em cada um deles.
Dai estava maquinando alguma forma de poder startar toda essa galera de uma vez, estava em dúvida se tinha alguma ferramente que fazia isso, ou alguma boa prática pra essa situação, mas a solução que estou pensando aqui tá sendo uma coisa parecida com o que o @pauloleal sugeriu, vou criar um docker-compose.yml
na minha pasta raiz onde estão todos os repositórios/pastas de cada serviço, e pegaria cada docker-compose.yml
de cada projeto e juntaria num "super docker-compose.yml" pra eu startar por ele, dai ele subiria os 14 containers numa pancada só.
O que acha?
Aparentemente você não vai precisar copiar o conteúdo de cada "sub docker-compose".
Nesse link eles tratam da funcionalidade "extend" do compose. https://stackoverflow.com/questions/55650342/import-docker-compose-file-in-another-compose-file/55652819
Então ficaria algo assim no seu primeiro projeto
services:
nginx_a:
image: nginx:latest
container_name: nginx
ports:
- 81:80
- 1443:443
E no seu diretorio raiz:
services:
nginx_projeto_a:
extends:
file: projeto-a/docker-compose.yml.yml
service: nginx_a
nginx_projeto_b:
extends:
file: projeto-b/docker-compose.yml.yml
Testa ai e lembra de dar um feedback aqui se funcionou ou não!