developing-docker-systems
/developing-docker-systems
Builds, tests and runs a Docker Compose system: a change proven in a throwaway project with a test profile, parallel lanes in worktrees, lean images. Use when building, changing, testing, running or tearing down a system defined by Dockerfiles and Compose files.
- Author
- devBertini ↗
- Repository
- workproof ↗
- Licence
- MIT
- Last repository change
- 11.11.2026
Assessment and security
- Files in this package
- 1
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 0
No signals detected. Repository changed on 11.11.2026, without references to retired models or APIs.
MIT, open: use and modify while retaining author attribution.
What it does and when to use it
Builds, tests and runs a Docker Compose system: a change proven in a throwaway project with a test profile, parallel lanes in worktrees, lean images. Use when building, changing, testing, running or tearing down a system defined by Dockerfiles and Compose files.
Original author description
Builds, tests and runs a Docker Compose system: a change proven in a throwaway project with a test profile, parallel lanes in worktrees, lean images. Use when building, changing, testing, running or tearing down a system defined by Dockerfiles and Compose files.
How it works
- Proving a change
- Images
- Lanes in parallel
- Before up of the system's own stack
- Secrets
SKILL.md preview
--- name: developing-docker-systems description: "Builds, tests and runs a Docker Compose system: a change proven in a throwaway project with a test profile, parallel lanes in worktrees, lean images. Use when building, changing, testing, running or tearing down a system defined by Dockerfiles and Compose files." --- # Developing Docker systems Each system's own commands live in its `CLAUDE.md`. ## Proving a change 1. `docker compose config -q --no-interpolate` checks the files without printing the interpolated config, which holds secrets. 2. Build only the images the change reaches: `docker compose -p <system>-<id> --profile test build <runner> <services it starts>`. A build or run over a minute goes to the background, with its own log and its exit code read. 3. Run the tests in their container, bounded: `docker compose -p <system>-<id> --profile test run --rm <runner> [paths]`; read the JUnit file or the runner's summary, not only its exit code. 4. A network feature: bring the stack up and `curl -fsS` its endpoint; a one-shot service exits, so check it with `docker compose ps`, not `up --wait`. 5. `docker compose -p <system>-<id> --profile test down` once the stack is spent; add `-v` only when that stack made a volume (`docker volume ls --filter label=com.docker.compose.project=<system>-<id> -q` lists it), in a command of its own. Never `-v` on the system's own long-lived stack. On Windows, absolute `-f` paths and override volumes start with an upper-case drive letter (`C:/`): a lower-case one can make BuildKit refuse with `additional privileges requested`, because the Dockerfile path no longer matches the context. In Git Bash, a container path argument (`-w /srv`) is rewritten to a Windows path: prefix the command with `MSYS_NO_PATHCONV=1`. ## Images Docker's build best practices (docs.docker.com/build/building/best-practices/): - Multi-stage: one stage fetches dependencies from the lockfile alone (cached until it changes), one builds, and each final stage copies only what runs plus production dependencies. - Bases pinned by a supported version and digest (`node:<LTS>-slim@sha256:...`), never `latest` or an end-of-life release; update the digest with `--pull`. - Installs from the lockfile only (`npm ci`, `pnpm install --frozen-lockfile`). - Final stages run as a non-root `USER`; Compose adds `read_only`, `cap_drop: [ALL]` and `no-new-privileges`. Files copied into a volume with `docker compose cp` land owned by root: hand them to the service's user with a one-off `chown` run as root with `--cap-add CHOWN`. - Health checks run with a tool the image already has; never install `curl` only for them. - `.dockerignore` keeps `.env`, `.git`, dependency folders and build output out of the context. ## Lanes in parallel - Commit first, then `git worktree add ../.<system>-worktrees/<id> -b lane/<id>`. - Each lane runs everything under `-p <system>-<id>`, publishes no port and fixes no subnet. - A lane comes back with `git merge --no-ff lane/<id>`, so `git branch -d` can remove it; then `git worktree remove`. ## Before `up` of the system's own stack - Check each published port is free and see what else runs (`docker ps -a`). - Check the Docker engine answers (`docker info`); stop it at the end only if this session started it and nothing else runs. ## Secrets Never run a Docker command that prints a secret's value (`docker compose config` or `docker inspect` on a stack with real secrets, `env` or `printenv` inside a container, `cat` of a file under `/run/secrets`): check that a value is set without printing it.
Versions
| Repository | Score | Licence |
|---|---|---|
| This page · devBertini/workproof | 90 | MIT |
| devBertini/workproof | 90 | MIT |
Database snapshot: 13.11.2026 · package version 1c84f2524d27 (SHA-256 digest of the entire package)
Downloads in the last 30 days: 0 · ranking
Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.
Similar skills
- 100docker
Use when writing Dockerfiles, Docker Compose files, or managing container images. Covers multi-stage builds, layer caching, Compose services, and image best practices. USE FOR: Dockerfiles, Docker Compose, multi-stage builds, container image optimization, local service… - 100generating-docker-compose-files
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". - 100generating-docker-compose-files
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". - 100docker-compose-basics
Use when defining and running multi-container Docker applications with Docker Compose YAML configuration. - 100docker
Manage Docker containers, images, volumes, and Compose stacks via the `docker` CLI — list, inspect, logs, run, build, stop, remove, compose up/down. Use for local container ops. - 96docker
Docker开发专家助手。当用户需要进行Docker镜像构建、容器编排、Dockerfile编写、Docker Compose或容器化部署时调用。