From acc
Checks Docker Compose configs for PHP stacks, detecting missing health checks, improper dependencies, hardcoded secrets, resource limits, restart policies, and networking issues.
How this skill is triggered — by the user, by Claude, or both
Slash command
/acc:check-docker-compose-configThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Analyze Docker Compose files for configuration issues in PHP application stacks.
Analyze Docker Compose files for configuration issues in PHP application stacks.
# BAD: No healthcheck section for service
# GOOD: Health check present
services:
php-fpm:
healthcheck:
test: ["CMD-SHELL", "php-fpm-healthcheck || exit 1"]
interval: 10s
timeout: 3s
retries: 3
# BAD: No health condition (race condition on startup)
services:
app:
depends_on:
- mysql
# GOOD: Health condition enforced
services:
app:
depends_on:
mysql:
condition: service_healthy
# BAD: Credentials in plain text
services:
mysql:
environment:
MYSQL_ROOT_PASSWORD: secret123
# GOOD: Using .env file reference
services:
mysql:
env_file: [.env]
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
# GOOD: Resource limits defined
services:
php-fpm:
deploy:
resources:
limits:
cpus: "1.0"
memory: 512M
# GOOD: Restart policy defined
services:
app:
restart: unless-stopped
# BAD: Deprecated in Compose V2+
version: "3.8"
services:
app:
image: my-app
# GOOD: Explicit network isolation
services:
app:
networks: [frontend, backend]
mysql:
networks: [backend]
networks:
frontend:
backend:
internal: true
# GOOD: User mapping to avoid permission issues
services:
php-fpm:
user: "${UID:-1000}:${GID:-1000}"
volumes:
- ./src:/var/www/html
# BAD: Binding to all interfaces — ports: ["80:80"]
# GOOD: Specific host binding — ports: ["127.0.0.1:8080:80"]
# GOOD: Explicit env_file with variable interpolation
services:
app:
env_file: [.env]
# Hardcoded passwords
Grep: "PASSWORD.*:.*['\"]?[a-zA-Z0-9]" --glob "**/docker-compose*.yml"
# depends_on without condition
Grep: "depends_on:" --glob "**/docker-compose*.yml"
# Deprecated version field
Grep: "^version:" --glob "**/docker-compose*.yml"
# Port bindings
Grep: "ports:" --glob "**/docker-compose*.yml"
| Pattern | Severity | Impact |
|---|---|---|
| Hardcoded credentials | Critical | Security breach risk |
| No health checks | Major | Unreliable dependencies |
| depends_on without condition | Major | Race conditions on startup |
| No resource limits | Major | OOM kills, resource exhaustion |
| Port conflicts | Major | Service startup failure |
| Missing networks | Minor | No network isolation |
| Deprecated version field | Minor | Compatibility warning |
| No restart policy | Minor | Manual recovery needed |
| Volume permissions | Minor | File access errors |
| Missing .env reference | Minor | Undefined variable risk |
### Compose Issue: [Description]
**Severity:** Critical/Major/Minor
**File:** `docker-compose.yml:line`
**Issue:** [Description of the problem]
**Fix:** [Corrected configuration snippet]
**Impact:** [What could happen if not fixed]
npx claudepluginhub dykyi-roman/awesome-claude-code --plugin accVerifies Docker health check configurations for PHP-FPM, Nginx, MySQL, PostgreSQL, Redis, and RabbitMQ. Detects improper intervals, missing start_periods, and recommends optimal parameters.
Provides 2025 Docker Compose production patterns: multi-environment overrides, env file strategies, non-root security, health checks, and version deprecation. Ideal for secure container deployments.
Provides Docker Compose setups for local dev stacks with databases and caching, multi-stage Dockerfiles for dev/prod, and patterns for security, networking, volumes, healthchecks.