ADR 0001 — Variantes de orquestração: docker-compose, prod-test e swarm¶
Nota
Fonte mantida em docs/decisions/0001-docker-compose-vs-swarm.md.
Status¶
Aceito (registra decisão implícita já em vigor no repositório).
Contexto¶
O repositório mantém três variantes de arquivo de orquestração na raiz:
docker-compose.yml— orquestração principal, usada em desenvolvimento local e como base do deploy em produção.docker-compose.prod-test.yaml— variante para validação de configuração de produção antes do deploy real.docker-compose.swarm.yaml— variante para orquestração via Docker Swarm.
Todas as três seguem o mesmo padrão de labels Traefik (ver
docs/modelo trafik yaml/docker-compose.yaml), mas diferem em como lidam com
réplicas, redes externas e segredos.
Decisão¶
Manter docker-compose.yml como fonte de verdade para desenvolvimento e para
o deploy real em produção via docker compose (não Swarm), reservando
docker-compose.swarm.yaml para um cenário de múltiplos nós que ainda não é
o caso de uso atual (stack roda em um único host). docker-compose.prod-test.yaml
é usado como bancada de teste de configuração antes de qualquer mudança em
docker-compose.yml chegar à produção.
Consequências¶
Mudanças estruturais em serviços (labels Traefik, healthchecks, networks) devem ser replicadas manualmente entre as três variantes quando aplicável.
Divergência entre as variantes é um risco conhecido.
Se o projeto crescer para múltiplos hosts, a variante Swarm já existe como ponto de partida.