Claude-code-plugins-plus-skills generating-docker-compose-files
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/devops/docker-compose-generator/skills/generating-docker-compose-files" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-generating-docker-compose-files-ba5276 && rm -rf "$T"
manifest:
plugins/devops/docker-compose-generator/skills/generating-docker-compose-files/SKILL.mdsource content
Generating Docker Compose Files
Overview
Generate production-ready
docker-compose.yml files for multi-container applications. Define services, networks, volumes, health checks, resource limits, and environment-specific overrides for local development, testing, and single-host production deployments.
Prerequisites
- Docker Engine 20.10+ and Docker Compose v2 (
)docker compose version - Application Dockerfiles for each service or pre-built images available
- Understanding of service dependencies and inter-service communication ports
- Environment variable values or
files for configuration.env - Sufficient disk space and memory for all containers defined in the stack
Instructions
- Scan the project for existing Dockerfiles,
files, and application entry pointsdocker-compose*.yml - Identify all services that compose the application stack (web server, API, database, cache, message queue, worker)
- Define each service with image or build context, port mappings, and environment variables
- Configure service dependencies using
with health check conditions to ensure proper startup orderdepends_on - Create named volumes for persistent data (database files, uploads, cache) and bind mounts for development hot-reload
- Define custom bridge networks to isolate service groups (frontend, backend, data tier)
- Add health checks for each service to enable dependency-aware startup and container orchestrator integration
- Set resource limits (
) for CPU and memory to prevent a single container from exhausting the hostdeploy.resources.limits - Create environment-specific override files:
for development,docker-compose.override.yml
for productiondocker-compose.prod.yml - Validate the configuration with
to check for syntax errorsdocker compose config
Output
with service definitions, networks, and volumesdocker-compose.yml- Environment-specific override files (
,docker-compose.override.yml
)docker-compose.prod.yml
file template with documented variables.env- Dockerfiles for services that require custom builds
- Helper scripts for common operations (
,start.sh
,stop.sh
)logs.sh
Error Handling
| Error | Cause | Solution |
|---|---|---|
| Another container or host process using the same port | Change the host port mapping or stop the conflicting process |
| Referenced network not defined in the compose file | Add the network under the top-level key |
| Typo in or missing service definition | Verify service names match exactly between and service definitions |
| Host directory owned by different user than container process | Use directive in service or set proper ownership with an init script |
| Container exceeded memory limit | Increase or optimize application memory usage |
Examples
- "Generate a docker-compose.yml for a Node.js API + PostgreSQL + Redis stack with health checks, named volumes, and a development override with hot-reload."
- "Create a compose file for a WordPress site with MySQL, Nginx reverse proxy, and Certbot for automatic SSL certificate renewal."
- "Build a docker-compose stack for a microservices app with 3 APIs, RabbitMQ message broker, and a shared Postgres database with isolated networks."
Resources
- Docker Compose specification: https://docs.docker.com/compose/compose-file/
- Docker Compose best practices: https://docs.docker.com/compose/production/
- Compose file versioning: https://docs.docker.com/compose/compose-file/compose-versioning/
- Multi-environment guide: https://docs.docker.com/compose/extends/