Source profileQuality 88/100Review permissions

magnus919/agent-skills/docker-compose/SKILL.md

docker-compose

Use Docker Compose to define, run, debug, and harden multi-container applications. Load for compose.yaml design, networking, volumes, secrets, profiles, overrides, watch mode, lifecycle operations, or troubleshooting.

Source repository stars
34
Declared platforms
0
Static risk flags
1
Last source update
2026-08-06
Source checked
2026-08-06

Decision brief

What it does—and where it fits

Use this skill for the whole Compose lifecycle: model the application, validate the resolved configuration, start or update services, inspect runtime state, and diagnose failures. Prefer the current Compose Specification. Do not add a top-level version key to new files: it is ob…

Best for

    Not for

    • Use an orchestrator-specific skill for Kubernetes, Swarm scheduling, or another platform's deployment controller. Compose can describe some deploy concepts, but is not a substitute for that platform's operational API.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/magnus919/agent-skills --skill "docker-compose"
    Safe inspection promptEditorial

    Inspect the Agent Skill "docker-compose" from https://github.com/magnus919/agent-skills/blob/a4db8e7d4350816f02515bac12d91c8050db1e58/docker-compose/SKILL.md at commit a4db8e7d4350816f02515bac12d91c8050db1e58. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Operating loop

      1. Discover the Compose file(s), project directory, env files, profiles, external resources, and whether the task is development, CI, staging, or production. 2. Model the application with services, named volumes for durable state, explicit networks for isolation, secrets for sen…

      Discover the Compose file(s), project directory, env files, profiles, external resources, and whether the task is development, CI, staging, or production.Model the application with services, named volumes for durable state, explicit networks for isolation, secrets for sensitive files, and profiles for optional services.Resolve before running:
    2. 02

      Decision rules

      dependson controls creation order, not readiness. Use a real healthcheck plus condition: servicehealthy; use servicecompletedsuccessfully for migrations or jobs. Do not use sleep as readiness logic.

      dependson controls creation order, not readiness. Use a real healthcheck plus condition: servicehealthy; use servicecompletedsuccessfully for migrations or jobs. Do not use sleep as readiness logic.Containers reach sibling services by service name and container port (db:5432), not host-published ports or container IPs.Use the default network for simple projects. Use separate networks to isolate tiers, internal: true for a network with no external gateway, and an explicitly named external: true network only when it is created outside…
    3. 03

      Quick command card

      Review the “Quick command card” section in the pinned source before continuing.

      Review and apply the “Quick command card” source section.
    4. 04

      High-value defaults

      When compose.override.yaml exists beside compose.yaml and no -f files are supplied, Compose loads the override automatically; use explicit -f files for production combinations.

      When compose.override.yaml exists beside compose.yaml and no -f files are supplied, Compose loads the override automatically; use explicit -f files for production combinations.Destructive CI gate: never run down --volumes until docker compose -p ci-${CIJOBID:?CIJOBID is required} config --services confirms the isolated project name; on shared environments, omit --volumes unless the exact data…Treat deploy resource and placement fields as target-dependent: a rendered field can be valid while the local implementation ignores it. Verify enforcement at runtime.
    5. 05

      Base/dev/prod command matrix

      Review the “Base/dev/prod command matrix” section in the pinned source before continuing.

      Review and apply the “Base/dev/prod command matrix” source section.

    Permission review

    Static risk signals and limitations

    Runs scripts

    medium · line 12

    The documentation asks the agent to run terminal commands or scripts.

    docker compose -f compose.yaml config --quiet

    Runs scripts

    medium · line 13

    The documentation asks the agent to run terminal commands or scripts.

    docker compose -f compose.yaml config

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score88/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars34SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    magnus919/agent-skills
    Skill path
    docker-compose/SKILL.md
    Commit
    a4db8e7d4350816f02515bac12d91c8050db1e58
    License
    MIT
    Collected
    2026-08-06
    Default branch
    main
    View the original SKILL.md

    Docker Compose

    Use this skill for the whole Compose lifecycle: model the application, validate the resolved configuration, start or update services, inspect runtime state, and diagnose failures. Prefer the current Compose Specification. Do not add a top-level version key to new files: it is obsolete and does not select a schema.

    Operating loop

    1. Discover the Compose file(s), project directory, env files, profiles, external resources, and whether the task is development, CI, staging, or production.
    2. Model the application with services, named volumes for durable state, explicit networks for isolation, secrets for sensitive files, and profiles for optional services.
    3. Resolve before running:
      docker compose -f compose.yaml config --quiet
      docker compose -f compose.yaml config
      docker compose -f compose.yaml config --services
      
    4. Operate with the narrowest command: up -d SERVICE, restart SERVICE, run --rm SERVICE COMMAND, or exec SERVICE COMMAND. Avoid down -v unless data deletion is intentional and confirmed.
    5. Verify with ps, health status, logs, an in-container check, and the externally published endpoint where applicable.
    6. Diagnose in order: resolved model → container state → logs → healthcheck → network membership/DNS → mounts/permissions → image/build architecture → host resources.

    Decision rules

    • depends_on controls creation order, not readiness. Use a real healthcheck plus condition: service_healthy; use service_completed_successfully for migrations or jobs. Do not use sleep as readiness logic.
    • Containers reach sibling services by service name and container port (db:5432), not host-published ports or container IPs.
    • Use the default network for simple projects. Use separate networks to isolate tiers, internal: true for a network with no external gateway, and an explicitly named external: true network only when it is created outside the project.
    • Use bind mounts for source/configuration during development, named volumes for state, and read-only mounts for immutable inputs. Treat host-path mounts as platform-sensitive.
    • Put credentials in Compose secrets or an external secret manager, not in images, Git, or ordinary environment variables. Grant each secret only to services that need it. Compose secrets are mounted at /run/secrets/<name>.
    • Use profiles for optional tools such as debugging, migrations, observability, or GPU workloads. Core services should have no profile.
    • Resolve interpolation explicitly. Shell variables override --env-file, which overrides the project .env; use ${REQUIRED:?explain} for mandatory values and $$ for a literal dollar sign. For example, write test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER}"] when the container shell, not Compose, must expand the variable. Check with docker compose config --environment.
    • In multi-file merges, later files are applied to the base. Relative paths resolve from the first/base file. Inspect the result with docker compose config; use !reset or !override when ordinary merge behavior is not what you want.
    • Compose Watch is for services built from local source. Use sync for hot-reloadable source, sync+restart for configuration, and rebuild for dependency or image changes. The container user must be able to write to the target path.
    • Treat deploy fields as implementation-dependent. Verify what the target Compose implementation enforces; the specification explicitly allows partial support.

    Quick command card

    docker compose version
    docker compose config --quiet
    docker compose up -d --build
    docker compose ps
    docker compose logs -f --tail=100 SERVICE
    docker compose exec SERVICE COMMAND
    docker compose run --rm SERVICE COMMAND
    docker compose restart SERVICE
    docker compose stop
    docker compose down                    # preserves named volumes
    docker compose down --remove-orphans
    docker compose pull && docker compose up -d
    docker compose --profile debug up -d
    docker compose up --watch
    docker compose port SERVICE CONTAINER_PORT
    docker network inspect PROJECT_default
    docker volume inspect PROJECT_VOLUME
    

    High-value defaults

    • When compose.override.yaml exists beside compose.yaml and no -f files are supplied, Compose loads the override automatically; use explicit -f files for production combinations.
    • Destructive CI gate: never run down --volumes until docker compose -p ci-${CI_JOB_ID:?CI_JOB_ID is required} config --services confirms the isolated project name; on shared environments, omit --volumes unless the exact data scope is intentional.
    • Treat deploy resource and placement fields as target-dependent: a rendered field can be valid while the local implementation ignores it. Verify enforcement at runtime.

    Base/dev/prod command matrix

    # Base or default development override
    docker compose config --quiet
    docker compose up --watch
    
    # Explicit production model
    IMAGE_TAG=release-1 docker compose -f compose.yaml -f compose.prod.yaml config --quiet
    IMAGE_TAG=release-1 docker compose -f compose.yaml -f compose.prod.yaml up -d
    
    # Optional tooling
    docker compose --profile debug up -d
    

    The default compose.override.yaml is auto-loaded; production overrides must be selected explicitly.

    Rendered configuration is not runtime proof. config can confirm a secret declaration, resource limit, or healthcheck is present, but only runtime inspection proves the secret file is mounted, the healthcheck passes, or the target implementation enforces deploy limits. Verify with exec, ps, inspect, and measured behavior on the target host.

    Reference routing

    Load whenReference
    Starting a project or choosing primitivesreferences/01-model-and-file-design.md
    Dependencies, healthchecks, shutdown, or jobsreferences/02-lifecycle-and-health.md
    DNS, ports, networks, volumes, or persistencereferences/03-networking-and-storage.md
    .env, interpolation, profiles, or overridesreferences/04-configuration-and-overrides.md
    Watch, builds, CI, or production operationsreferences/05-development-and-production.md
    Secrets, least privilege, or supply-chain concernsreferences/06-security.md
    A failure needs a systematic workflowreferences/07-troubleshooting.md
    CLI command or field lookupreferences/08-command-playbook.md
    Source coverage and freshness checksreferences/00-source-index.md

    Included artifacts

    • templates/: portable base, development, production, environment, and secret-file examples.
    • assets/project-review-checklist.md: handoff and pre-deployment review checklist.
    • scripts/compose-doctor.sh: deterministic validation and runtime diagnostics with text or JSON output.

    Failure boundaries

    • config --quiet proves model resolution, not image pulls, startup, or application correctness.
    • A running container is not a ready service. A passing healthcheck is not end-to-end verification.
    • docker compose down removes project containers and networks; it normally preserves named volumes. down -v is destructive.

    When not to use this skill

    Use an orchestrator-specific skill for Kubernetes, Swarm scheduling, or another platform's deployment controller. Compose can describe some deploy concepts, but is not a substitute for that platform's operational API.

    Alternatives

    Compare before choosing

    Computed 9929,907

    HKUDS/Vibe-Trading

    strategy-generate

    Create, modify, and optimize quantitative trading strategies, then backtest and evaluate them.

    Computed 97137

    equinor/neqsim

    neqsim-subsea-and-wells

    Subsea production systems, DNV-RP-F109 on-bottom stability screening, DNV-RP-F105 free-span screening, DNV-RP-F101 corroded-pipeline screening, well design, SURF cost estimation, and tieback analysis with NeqSim. USE WHEN: designing subsea fields, screening pipeline/cable/umbilical seabed stability or inspected metal loss, sizing flowlines and umbilicals, estimating well costs, performing casing design, running tieback comparisons, or configuring subsea equipment (trees, manifolds, boosters, ris

    Computed 97107

    AI-Unified-Process/marketplace

    browserless-test

    Creates Vaadin Browserless server-side unit tests for Vaadin views covering navigation, component interactions, form validation, grid operations, and notifications. Use when the user asks to "write Browserless tests", "write Vaadin UI unit tests", "unit test a Vaadin view without a browser", "create view tests with the official Vaadin testing framework", or mentions Browserless testing, SpringBrowserlessTest, browserless-test-junit6, UI Unit Testing, or server-side Vaadin testing.

    Computed 9723

    freenet/freenet-agent-skills

    dapp-builder

    Build and maintain decentralized applications on Freenet using river as a template. Guides through designing contracts (shared state), delegates (private state), and UI, and through upgrading a live dApp safely. Use when user wants to create a new Freenet dApp, design contract state, implement delegates, build a Freenet-connected UI, OR upgrade an existing dApp — bump freenet-stdlib, ship a new contract/delegate version (v2), fix a bug that re-keys the WASM, or migrate state across a contract/de