docker-compose
Installation
SKILL.md
Docker Compose v2 / Compose Specification
Use this skill when creating or reviewing a Docker Compose project: local dev stacks, service dependencies, databases, queues, reverse proxies, GPUs, Docker Model Runner, develop.watch, or multi-file overrides.
This skill tracks the Compose Specification and Docker Docs as of June 2026.
Defaults for new projects
- File name: create
compose.yaml, notdocker-compose.yml. Docker Compose discoverscompose.yaml/compose.ymlbefore legacydocker-compose.yaml/docker-compose.yml, and current Docker docs usecompose.yaml. - Command: use
docker compose(space) for Compose v2. The olddocker-composebinary is legacy. - Top-level
version: omit it.version:is obsolete in the Compose Specification and does not select supported features. - Validation: run
docker compose configbefore saying the file is ready. - Secrets: never hardcode secret values in YAML. Use Docker secrets, mounted files, or gitignored env files; prefer
_FILEenv vars when images support them. - Images: pin tags or digests. Avoid
latestexcept disposable demos. - Ports: bind local-only services as
127.0.0.1:HOST:CONTAINER; do not publish databases publicly unless explicitly requested.