O Que É Docker Compose? Aplicações Multi-Container Explicadas
O Docker Compose define e executa aplicações multi-container a partir de um único arquivo YAML, de modo que uma aplicação e suas dependências iniciam juntas com um único comando.
Aplicações reais precisam de mais de um container: um serviço web, um banco de dados, um cache. O Docker Compose permite declarar todos eles, suas redes e sua configuração em um único arquivo, e então subir ou derrubar a stack inteira com um único comando, o que é inestimável para dev local e CI.
O que é Docker Compose
Docker Compose é uma ferramenta para definir e executar aplicações Docker multi-container. Um arquivo compose.yaml lista serviços (containers), redes e volumes com sua configuração. O comando "docker compose" o lê e gerencia todo o conjunto como uma unidade.
Como funciona
Cada serviço no arquivo mapeia para um container, construído a partir de um Dockerfile ou obtido como uma image, com portas, variáveis de ambiente e dependências declaradas. O Compose cria uma rede compartilhada para que os serviços possam se alcançar pelo nome. "docker compose up" inicia tudo; "down" desmonta de forma limpa.
Um exemplo de compose
Dois serviços conectados em um único arquivo.
services:
web:
build: .
ports: ["3000:3000"]
depends_on: [db]
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: secretPapel em CI/CD
Em CI, o Compose é ideal para testes de integração que precisam de dependências reais: levante a aplicação junto com um banco de dados e um cache, execute os testes contra eles e depois desmonte tudo. "docker compose up -d" inicia a stack em segundo plano, os testes rodam e "down" faz a limpeza. Iniciar stacks completas consome muitos recursos, então runners gerenciados mais rápidos com caches de image aquecidos mantêm esses jobs ágeis.
Alternativas
O Testcontainers gerencia containers programaticamente de dentro do código de teste, o que muitas equipes preferem para testes de integração. Kubernetes com kind ou k3d executa um cluster local para configurações mais próximas de produção. O Compose continua sendo a forma mais simples de declarar e executar uma aplicação multi-container para desenvolvimento e CI.
Principais conclusões
- O Docker Compose executa aplicações multi-container a partir de um arquivo YAML.
- Ele conecta serviços em rede e os gerencia como uma unidade.
- Em CI, é ideal para levantar dependências reais para testes de integração.