writing-skills
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment
generating-docker-compose-filesExecute use when you need to work with Docker Compose. This skill provides Docker Compose file generation with comprehensive guidance and automation. Trigger with phrases like "generate docker-compose", "create compose file", or "configure multi-container app".
Independent GitHub snapshot · Automated classification · Original documentation governs
name: generating-docker-compose-files description: 'Execute use when you need to work with Docker Compose.
This skill provides Docker Compose file generation with comprehensive guidance and automation.
Trigger with phrases like "generate docker-compose", "create compose file",
or "configure multi-container app".
' allowed-tools: Read, Write, Edit, Grep, Glob, Bash(docker:), Bash(kubectl:) version: 1.28.0 author: Jeremy Longshore jeremy@intentsolutions.io license: MIT tags:
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.
docker compose version).env files for configurationdocker-compose*.yml files, and application entry pointsdepends_on with health check conditions to ensure proper startup orderdeploy.resources.limits) for CPU and memory to prevent a single container from exhausting the hostdocker-compose.override.yml for development, docker-compose.prod.yml for productiondocker compose config to check for syntax errorsdocker-compose.yml with service definitions, networks, and volumesdocker-compose.override.yml, docker-compose.prod.yml).env file template with documented variablesstart.sh, stop.sh, logs.sh)| Error | Cause | Solution |
|---|---|---|
port is already allocated | Another container or host process using the same port | Change the host port mapping or stop the conflicting process |
network not found | Referenced network not defined in the compose file | Add the network under the top-level networks: key |
service depends on undefined service | Typo in depends_on or missing service definition | Verify service names match exactly between depends_on and service definitions |
volume mount permission denied | Host directory owned by different user than container process | Use user: directive in service or set proper ownership with an init script |
OOM killed | Container exceeded memory limit | Increase deploy.resources.limits.memory or optimize application memory usage |