Passo-a-passo detalhado do skill, referenciando as fases cognitivas:
1SENSE — Identificar stack e serviços
Listar serviços: app, databases, cache, queue, reverse proxy
Verificar Dockerfiles existentes e detectar portas de cada serviço
Mapear variáveis de ambiente necessárias via `.env.example`
2CONTEXTUALIZE — Analisar dependências e volumes
Definir grafo de dependências: qual serviço precisa de qual antes de iniciar
Separar dados persistentes (volumes nomeados) de código (bind mounts para dev)
Planejar rede interna para isolar serviços
3RECOMMEND — Gerar docker-compose.yml base
```yaml
version: "3.9"
services:
app:
build: .
ports: ["3000:3000"]
environment:
DATABASE_URL: postgresql://user:pass@db:5432/mydb
REDIS_URL: redis://cache:6379
depends_on:
db: { condition: service_healthy }
cache: { condition: service_started }
networks: [app-network]
restart: unless-stopped
db:
image: postgres:16.3
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_DB: mydb
volumes:
postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U user -d mydb"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
networks: [app-network]
cache:
image: redis:7.2-alpine
volumes: [redis_data:/data]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
networks: [app-network]
volumes:
postgres_data:
redis_data:
networks:
app-network:
driver: bridge
```
4RECOMMEND — Gerar docker-compose.override.yml para dev
```yaml
services:
app:
build: { target: development }
volumes:
.:/app
/app/node_modules # preserve container modules
command: npm run dev # hot-reload
ports: ["9229:9229"] # debug port
```
5EVALUATE — Validar configuração
Testar: `docker compose config` para validar sintaxe
Confirmar healthchecks: `docker compose up --wait` aguarda serviços saudáveis
Verificar restart policies e resource limits
6REFLECT — Segurança e documentação
Confirmar que senhas estão em `.env` (gitignored) e não no YAML
Verificar que imagens estão pinadas com versão semântica exata
Reportar telemetria via mcp-skillschain