🐳

Docker Compose

Verified

by Community

Create Docker Compose files for common stacks, debug container issues, manage volumes and networks, and set up development environments with Docker.

dockercomposecontainersdevopsdevelopment

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