DEV Community

Isaias Velasquez
Isaias Velasquez

Posted on

Docker Compose Ambiente Desenvolvimento

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:
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

O -d faz o terminal voltar ao normal depois de subir os servicos. Para ver os logs:

docker compose logs -f
Enter fullscreen mode Exit fullscreen mode

Para parar tudo sem perder os dados do banco:

docker compose down
Enter fullscreen mode Exit fullscreen mode

Se quiser derrubar tudo e apagar os volumes tambem:

docker compose down -v
Enter fullscreen mode Exit fullscreen mode

Isso e util quando voce quer comecar do zero um banco de teste.

That's all for now.
Thanks for reading!

Top comments (0)