Docker Compose for Local Development
Basic Setup
version: '3.8'
services:
postgres:
image: postgres:16
ports:
- "5432:5432"
environment:
POSTGRES_USER: dev
POSTGRES_PASSWORD: dev
POSTGRES_DB: myapp
volumes:
- postgres_data:/var/lib/postgresql/data
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
postgres_data:
Usage
docker compose up -d
docker compose down
docker compose logs -f postgres
docker compose exec postgres psql -U dev -d myapp
.env for local dev
DATABASE_URL="postgresql://dev:dev@localhost:5432/myapp"
REDIS_URL="redis://localhost:6379"
Health Check
services:
postgres:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U dev"]
interval: 5s
timeout: 5s
retries: 5