Summary
TL;DR: Helps you define and manage multi-container Docker applications with proper dependency handling, networking, and service orchestration.
Docker Compose is an OpenClaw skill that define multi-container applications with proper dependency handling, networking, and volume management.
Created by Iván, this skill has been downloaded 3k+ times on ClawHub. Install it with one command and your AI agent gains these capabilities right away.
Use cases
- Defining a full-stack development environment with frontend, backend, and database containers
- Adding a Redis cache service to an existing compose setup with proper health checks
- Configuring container networking so microservices can discover each other by service name
- Setting up volume mounts for local development so code changes reflect instantly in containers
Installation
Run this command to install the skill on your OpenClaw agent:
npx clawhub@latest install docker-composeSecurity scan
The skill is an instruction-only Docker Compose best-practices guide and its requirements and instructions are consistent with that purpose.
SKILL.md
---
name: Docker Compose
description: Define multi-container applications with proper dependency handling, networking, and volume management.
metadata: {"clawdbot":{"emoji":"🐳","requires":{"anyBins":["docker-compose","docker"]},"os":["linux","darwin","win32"]}}
---
## depends_on Ready Condition
- `depends_on:` alone only waits for container start—service likely not ready yet
- Add healthcheck + condition for actual readiness:
```yaml
depends_on:
db:
condition: service_healthy
```
- Without healthcheck defined on target service, `service_healthy` fails
## Healthcheck start_period
```yaml
healthcheck:
test: ["CMD", "pg_isready"]
start_period: 30s
```
- `start_period`: initial grace period—health failures don't count during this time
- Slow-starting services (databases, Java apps) need adequate start_period
- Without it, container marked unhealthy before it finishes initializing
## Volume Destruction
- `docker compose down` preserves volumes
- `docker compose down -v` DELETES ALL VOLUMES—data loss
- `-v` often added by habit from tutorials—catastrophic in production
- Named volumes survive `down`; anonymous volumes deleted on `down`
## Resource Limits in Development
```yaml
deploy:
resources:
limits:
memory: 512M
```
- Set limits during development—catches memory issues early
- Unlimited container can consume all host memory—kills other processes
- Copy limits to production config—don't discover limits in prod
## .dockerignore
- Without it: `node_modules`, `.git`, secrets copied into image
- Mirrors `.gitignore` syntax—create at same level as Dockerfile
- Large build context = slow builds, large images, potential security issues
- At minimum: `.git`, `node_modules`, `.env`, `*.log`, build artifacts
## Override File Pattern
- `docker-compose.yml`: base config that works everywhere
- `docker-compose.override.yml`: auto-loaded, development-specific (mounts, ports)
- Production: `docker compose -f docker-compose.yml -f docker-compose.prod.yml up`
- Keep secrets and environment-specific config in override files, not base
## Profiles for Optional Services
```yaml
services:
mailhog:
profiles: [dev]
```
- Services with profiles don't start by default—cleaner `docker compose up`
- Enable with `--profile dev`
- Use for: test databases, debug tools, mock services, admin interfaces
## Environment Variable Precedence
1. Shell environment (highest)
2. `.env` file in compose directory
3. `env_file:` directive
4. `environment:` in compose file (lowest for that var)
- `.env` must be exactly `.env`—`.env.local` not auto-loaded
- Debug with `docker compose config`—shows resolved values
Version history
Initial release
Frequently asked questions
It works with modern Compose specification syntax. For individual container commands, check [Docker Essentials](/skills/docker-essentials), which is what Docker Compose V2 uses. If you need a specific version, just mention it in your request.
Installation method
Send this prompt to your agent to install the skill
npx clawhub@latest install docker-composeSkill data sourced from ClawHub