Docker Compose Skill
Create and manage Docker Compose configurations.
Common Stack: Node.js + PostgreSQL + Redis
services:
app:
build: .
ports: ["3000:3000"]
environment:
DATABASE_URL: postgres://user:pass@db:5432/mydb
REDIS_URL: redis://redis:6379
depends_on: [db, redis]
db:
image: postgres:16
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_DB: mydb
volumes: [pgdata:/var/lib/postgresql/data]
redis:
image: redis:7-alpine
volumes: [redisdata:/data]
volumes:
pgdata:
redisdata:
Useful Commands
docker compose up -d # Start in background
docker compose down # Stop and remove
docker compose logs -f app # Follow logs
docker compose exec app sh # Shell into container
docker compose build --no-cache # Rebuild images
Guidelines
- Always use named volumes for persistent data
- Set resource limits for production
- Use health checks for dependent services
- Pin image versions (postgres:16, NOT postgres:latest)
- Use .env files for secrets, never hardcode