Docker Compose para desenvolvimento local
Conecte um serviço Go ao PostgreSQL e ao Redis
Docker Compose para desenvolvimento local é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.
Por que usar Docker Compose?
O Docker Compose orquestra vários contêineres (aplicação, banco de dados, cache e agente de mensagens) para o desenvolvimento local, reproduzindo um ambiente semelhante ao de produção sem a configuração manual dos serviços.
Estrutura de docker-compose.yml
Defina serviços, redes e volumes em um arquivo YAML:
services:
app:
build: .
ports: ["8080:8080"]
environment:
- DATABASE_URL=postgres://app:pass@db/mydb
depends_on: [db]
db:
image: postgres:15
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: pass
POSTGRES_DB: mydb
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:Recarregamento automático com Air
Use github.com/air-verse/air para recarregar automaticamente a aplicação durante o desenvolvimento. Monte o código-fonte no contêiner e execute air em vez do binário:
app:
volumes:
- .:/app
command: airVerificações de integridade
Defina verificações de integridade para que depends_on aguarde até que o banco de dados esteja realmente pronto, e não apenas iniciado:
db:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U app"]
interval: 5s
timeout: 3s
retries: 5
app:
depends_on:
db:
condition: service_healthySubstituições para o ambiente
Use docker-compose.override.yml (mesclado automaticamente) para configurações exclusivas do ambiente local, mantendo o arquivo base limpo para a CI:
# docker-compose.override.yml
services:
app:
volumes: [".:/app"] # source mount for live reloadRedes nomeadas
Coloque os serviços em uma rede personalizada compartilhada para permitir a descoberta de serviços baseada em DNS pelo nome do serviço:
networks:
backend:
driver: bridge
services:
app:
networks: [backend]
db:
networks: [backend]Arquivos de ambiente
Use a chave env_file para carregar arquivos .env no contêiner, mantendo os segredos fora do YAML:
app:
env_file: .env.localExecução de comandos
Comandos comuns do Compose:
docker compose up -d # start in background
docker compose down -v # stop and remove volumes
docker compose logs -f app # stream app logs
docker compose exec db psql -U app mydb # run in containerPopulação inicial do banco de dados
Monte arquivos SQL de população inicial no diretório /docker-entrypoint-initdb.d da imagem do postgres — eles serão executados na primeira criação do contêiner:
db:
volumes:
- ./migrations:/docker-entrypoint-initdb.dPerfis
Use perfis do Compose para iniciar serviços opcionais (por exemplo, uma pilha de monitoramento) somente quando necessário:
services:
grafana:
profiles: ["monitoring"]Compose na CI
Execute testes de integração em serviços reais na CI com o Compose. O GitHub Actions oferece suporte nativo ao Docker Compose; use verificações de integridade para aguardar até que os serviços estejam prontos.
Verificação rápida
Como garantir que o contêiner da aplicação aguarde até que o banco de dados esteja pronto no Docker Compose?
Recapitulação: Docker Compose
Pontos principais:
- docker-compose.yml define todos os serviços, redes e volumes
- depends_on + healthcheck para a prontidão dos serviços
- Arquivos de substituição para configurações do desenvolvimento local; env_file para segredos
- Air para recarregamento automático; monte o código-fonte como um volume
Perguntas Frequentes
A aula “Docker Compose para desenvolvimento local” é grátis?
Sim — o texto completo de “Docker Compose para desenvolvimento local” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.
O que vou aprender em “Docker Compose para desenvolvimento local”?
Conecte um serviço Go ao PostgreSQL e ao Redis Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Go Academy?
Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Docker Compose para desenvolvimento local”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Go Academy?
Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Builds Docker em várias etapas para Go
- Configuração de ambiente e secrets
- Docker Compose para desenvolvimento local
- Verificações de saúde e ajustes para produção