Loading...
Loading...
Local dev environments with Docker Compose - multi-service setups, databases, hot reload, debugging. Use when: docker compose, local dev, postgres container, redis local, dev environment.
npx skill4agent add scientiacapital/skills docker-compose-skill.envdocker compose up -ddocker compose logs -fdocker compose up -d.envdocker compose down -v| Service | Image | Default Port |
|---|---|---|
| PostgreSQL | | 5432 |
| Redis | | 6379 |
| MongoDB | | 27017 |
| MySQL | | 3306 |
services:
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: ${DB_USER:-app}
POSTGRES_PASSWORD: ${DB_PASSWORD:-secret}
POSTGRES_DB: ${DB_NAME:-app_dev}
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-app}"]
interval: 5s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
volumes:
postgres_data:
redis_data:# Start services (detached)
docker compose up -d
# Start with logs visible
docker compose up
# View logs
docker compose logs -f [service]
# Shell into container
docker compose exec db psql -U app
# Stop and remove containers
docker compose down
# Stop and remove volumes (full reset)
docker compose down -v
# Rebuild without cache
docker compose build --no-cache.env# .env
DB_USER=app
DB_PASSWORD=secret
DB_NAME=myapp_dev
REDIS_URL=redis://localhost:6379environment:
POSTGRES_USER: ${DB_USER:-app}services:
db:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-app}"]
interval: 5s
timeout: 5s
retries: 5
app:
depends_on:
db:
condition: service_healthyservices:
app:
build: .
volumes:
- .:/app # Source code
- /app/node_modules # Preserve node_modules
environment:
- NODE_ENV=developmentservices:
mailhog:
image: mailhog/mailhog
profiles: ["mail"]
ports:
- "8025:8025"
# Start with: docker compose --profile mail upreference/compose-patterns.mdreference/services.mdreference/networking.mdreference/dev-workflow.md