docker-compose-skill
1
总安装量
1
周安装量
#51767
全站排名
安装命令
npx skills add https://github.com/scientiacapital/skills --skill docker-compose-skill
Agent 安装分布
mcpjam
1
claude-code
1
replit
1
junie
1
windsurf
1
zencoder
1
Skill 文档
<quick_start>
- Copy the compose.yml template below for your stack (Postgres, Redis, etc.)
- Create a
.envfile with database credentials - Run
docker compose up -dto start services - Use
docker compose logs -fto monitor </quick_start>
<success_criteria>
- All services start with
docker compose up -dand reach healthy state - Health checks configured for every database/cache service
- Environment variables externalized to
.env(no hardcoded secrets in compose.yml) - Hot reload working for application code via volume mounts
docker compose down -vcleanly removes all containers and volumes </success_criteria>
Docker Compose Skill
Local development environments using Docker Compose for multi-service setups.
Quick Start
Common Services
| Service | Image | Default Port |
|---|---|---|
| PostgreSQL | postgres:16-alpine |
5432 |
| Redis | redis:7-alpine |
6379 |
| MongoDB | mongo:7 |
27017 |
| MySQL | mysql:8 |
3306 |
Basic compose.yml
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:
Essential Commands
# 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
Environment Variables
Create .env file in project root:
# .env
DB_USER=app
DB_PASSWORD=secret
DB_NAME=myapp_dev
REDIS_URL=redis://localhost:6379
Reference in compose.yml:
environment:
POSTGRES_USER: ${DB_USER:-app}
Health Checks
Always add health checks for service dependencies:
services:
db:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-app}"]
interval: 5s
timeout: 5s
retries: 5
app:
depends_on:
db:
condition: service_healthy
Hot Reload Setup
Mount source code for development:
services:
app:
build: .
volumes:
- .:/app # Source code
- /app/node_modules # Preserve node_modules
environment:
- NODE_ENV=development
Profiles for Optional Services
services:
mailhog:
image: mailhog/mailhog
profiles: ["mail"]
ports:
- "8025:8025"
# Start with: docker compose --profile mail up
Reference Files
reference/compose-patterns.md– Common compose file patternsreference/services.md– Database, cache, queue service configsreference/networking.md– Ports, networks, volumesreference/dev-workflow.md– Development workflow commands