Install
$ agentstack add skill-gordonmurray-data-engineering-skills-docker-compose ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Docker Compose V2 Expert
Use this skill to write, review, and modernize Docker Compose files using the current Compose Specification and docker compose V2 CLI.
Current Facts
- The top-level
versionproperty is obsolete. Compose keeps it only for backward compatibility and warns when it is used. - Compose validates against the most recent schema regardless of
version. - Use
docker compose, not the old standalonedocker-composecommand, unless supporting a pinned legacy environment. - Default file names are
compose.yamlandcompose.yml;docker-compose.ymlremains widely supported. - Root-level keys commonly include
services,networks,volumes,configs, andsecrets. - Current example image majors as of June 2026: PostgreSQL 18 and Redis 8. Pin exact patch/minor versions for production.
How To Use
- Start with
services:and noversion:field. - Add only the networks, volumes, secrets, configs, profiles, and build settings required for the user’s workflow.
- Use healthchecks plus long-form
depends_onwhen startup readiness matters. - Bind sensitive ports to
127.0.0.1unless external access is required.
Review Checklist
- No top-level
version:. services:is plural and at the root.- Service names are stable and lowercase.
- Images are pinned for production; avoid
latestexcept in disposable examples. - Secrets are not embedded in YAML; use env vars,
.env, secret files, or platform secrets. - Persistent database state uses named volumes.
- Development bind mounts are explicit and use
:rowhen possible. - Healthchecks use commands available inside the image.
- Resource limits are explicit where runaway memory/CPU use is risky.
Common Patterns
- PostgreSQL: use
postgres:18-alpinefor current examples unless project requirements say otherwise. - Redis: use
redis:8-alpinefor current examples unless project requirements say otherwise. - Internal databases should usually live only on a backend network and avoid host port exposure.
- Use
profilesfor optional services such as observability, admin tools, or one-off jobs. - Use
docker compose configto validate rendered configuration.
Update Checklist
- Recheck Docker Compose docs for newly added keys such as
develop,interface_name, or pull policy support before recommending them. - Recheck upstream image tags before refreshing examples.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: gordonmurray
- Source: gordonmurray/data-engineering-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.