← Back to Hub

Docker Compose Generator

Generates docker-compose.yml files for development environments. Supports common services like databases, caches, and message queues.

Skilldevopsdockercomposecontainersdevops

by Build Ship Grow

docker-compose-generator.yml
yaml + markdown
---
name: compose
description: Generate docker-compose.yml for local development services
triggers:
  - /compose
  - "docker compose"
  - "set up local services"
---

# Docker Compose Generator Skill

## Process
1. Ask which services are needed (or detect from project config)
2. Generate a `docker-compose.yml` with sensible defaults
3. Include health checks and volume mounts
4. Add a `.env.example` with required variables

## Common Service Templates

### PostgreSQL
```yaml
postgres:
  image: postgres:16-alpine
  ports: ["5432:5432"]
  environment:
    POSTGRES_USER: ${DB_USER:-postgres}
    POSTGRES_PASSWORD: ${DB_PASSWORD:-postgres}
    POSTGRES_DB: ${DB_NAME:-app}
  volumes:
    - pgdata:/var/lib/postgresql/data
  healthcheck:
    test: ["CMD-SHELL", "pg_isready -U postgres"]
    interval: 5s
    timeout: 5s
    retries: 5
```

### Redis
```yaml
redis:
  image: redis:7-alpine
  ports: ["6379:6379"]
  volumes:
    - redisdata:/data
  healthcheck:
    test: ["CMD", "redis-cli", "ping"]
```

## Rules
- Always use Alpine images when available
- Pin major versions, not latest
- Add health checks to every service
- Use named volumes for data persistence
- Expose only necessary ports