Trabalhar com dependencias como banco de dados, filas e caches localmente e sempre um processo chato. Docker Compose resolve isso com um arquivo YAML que sobe tudo junto.
Crie um arquivo docker-compose.yml na raiz do projeto.
version: '3.8'
services:
app:
build: .
ports:
- "8000:8000"
volumes:
- .:/app
environment:
- DATABASE_URL=postgresql://user:pass@db:5432/devdb
- REDIS_URL=redis://redis:6379/0
depends_on:
- db
- redis
db:
image: postgres:16-alpine
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=pass
- POSTGRES_DB=devdb
volumes:
- pgdata:/var/lib/postgresql/data
redis:
image: redis:7-alpine
volumes:
pgdata:
Esse arquivo define tres servicos. O app usa o Dockerfile local para build. O db e o redis usam imagens prontas.
O volume monta seu codigo fonte dentro do container. Isso faz com que qualquer alteracao no codigo seja refletida automaticamente sem precisar rebuildar a imagem.
Para subir tudo execute:
docker compose up -d
O -d faz o terminal voltar ao normal depois de subir os servicos. Para ver os logs:
docker compose logs -f
Para parar tudo sem perder os dados do banco:
docker compose down
Se quiser derrubar tudo e apagar os volumes tambem:
docker compose down -v
Isso e util quando voce quer comecar do zero um banco de teste.
That's all for now.
Thanks for reading!
Top comments (0)