Use when you need to work with Docker Compose or Podman Compose. This skill provides compose file generation with comprehensive guidance for both Docker and Podman runtimes. Trigger with phrases like "generate docker-compose", "create compose file", "configure multi-container app", "podman compose", or "generate podman compose".
How this skill is triggered — by the user, by Claude, or both
Slash command
/docker-compose-generator:generating-docker-compose-filesThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill generates production-ready compose files for both Docker Compose and Podman Compose.
This skill generates production-ready compose files for both Docker Compose and Podman Compose.
docker compose) — Docker daemon, bridge networking, service-name DNSpodman compose (built-in wrapper, delegates to docker-compose or podman-compose)podman-compose (Python package, translates compose spec to Podman CLI)Before using this skill, ensure:
docker compose, podman compose, or podman-composeversion: key).env file template for environment variablesdocker compose config or podman compose configWhen generating for Podman, apply these adaptations:
Ports (rootless):
8080:80 instead of 80:80) or document the sysctl:
# To allow low ports: sysctl -w net.ipv4.ip_unprivileged_port_start=80
Volumes (SELinux):
:z — shared label (multiple containers can access):Z — private label (single container, exclusive)volumes:
- ./config:/app/config:z # shared
- ./data:/app/data:Z # private to this container
:U to auto-chown volumes for rootless UID mapping:
volumes:
- ./uploads:/app/uploads:U # auto-chown to container user
Networking:
podman network does NOT support DNS resolutionnetworks:
app-net:
driver: bridge # DNS enabled by default on custom networks
Unsupported/Limited Features:
deploy.replicas — no Swarm equivalent, remove entirelydeploy.resources — works via podman compose (docker-compose backend), may be ignored by podman-composenetwork_mode: host — known issues when combined with multiple networksenv_file entries — podman-compose only supports a single --env-file; podman compose handles multipledepends_on with health checks:
condition: service_healthy requires Podman >= 4.6.0 and recent podman-composeBuild context:
Containerfile but accepts Dockerfileversion: key — use Compose Specification format:z/:Z SELinux suffixes on bind mounts for RHEL-based systems:U suffix where rootless UID mapping causes permission issuespodman networkdeploy.replicas and Swarm-specific configdepends_on with health conditions only on Podman >= 4.6.0env_file per service with podman-composepodman generate systemd or Quadletpodman generate kube for Kubernetes migration pathpodman compose vs podman-composepodman compose | podman-compose | |
|---|---|---|
| Type | Built-in Podman wrapper | Standalone Python package |
| Backend | Delegates to docker-compose or podman-compose | Direct Podman CLI translation |
| Feature coverage | Full (when using docker-compose backend) | Subset of Compose spec |
| Resource limits | Supported | May be ignored |
| Multiple env_file | Supported | Single only |
| Recommendation | Maximum compatibility | Lightweight, Podman-native |
This skill produces:
Compose Files: Complete compose.yaml (or docker-compose.yml) ready to use
Environment Templates: .env.example with all extracted variables and safe defaults
Documentation: Inline comments explaining runtime-specific decisions
Validation: Syntax and configuration verification
Port Conflicts:
Volume Permission Errors:
:U suffix or use podman unshare to fix ownership:z or :Z suffix to bind mountsDNS Resolution Failures (Podman):
podman networkHealth Check Failures:
Docker Compose Specification: https://docs.docker.com/compose/compose-file/ Podman Compose: https://docs.podman.io/en/latest/markdown/podman-compose.1.html Podman Rootless Guide: https://github.com/containers/podman/blob/main/docs/tutorials/rootless_tutorial.md SELinux and Containers: https://developers.redhat.com/articles/2025/04/11/my-advice-selinux-container-labeling
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub stefanfaur/roach-marketplace --plugin docker-compose-generator