Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add JayRHa/AgentSkills --skill dockerfile-progit clone --depth 1 https://github.com/JayRHa/AgentSkillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jayrha/agentskills/dockerfile-pro)<a href="https://agentmods.dev/skills/jayrha/agentskills/dockerfile-pro"><img src="https://agentmods.dev/badge/skills/jayrha/agentskills/dockerfile-pro/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jayrha/agentskills/dockerfile-pro"><img src="https://agentmods.dev/badge/skills/jayrha/agentskills/dockerfile-pro.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00115 | $0.01989 |
| Opus 5.5 | $0.00046 | $0.00796 |
| Sonnet 5.5 | $0.00023 | $0.00398 |
| Haiku 4.5 | $0.00012 | $0.00199 |
Grade B, and why
dockerfile-pro scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Recursive force deletemediumDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
- **Clean in the same layer:** `apt-get update && apt-get install -y --no-install-recommends X && rm -rf /var/lib/apt/lists/*`. Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.
How it starts
The opening of the file, as written. The whole thing — 91 lines — stays where its author put it; the contents beside it link to each section on GitHub.
dockerfile-pro
Overview
Produce production-grade Dockerfiles that are small (minimal final image), secure (non-root, pinned, no secrets, minimal surface), and reproducible (deterministic builds with effective layer caching). Applies to any language runtime (Go, Rust, Node, Python, Java, .NET, etc.) and any registry.
Keywords: Dockerfile, container, multi-stage build, build cache, BuildKit, non-root user, distroless, alpine, slim, image size, layer caching, .dockerignore, HEALTHCHECK, OCI image, supply chain, reproducible build, hadolint, Trivy.
The three goals (small / secure / reproducible) often align, but when they conflict, prioritize security > reproducibility > size.
Workflow
Follow these steps in order when authoring or reviewing a Dockerfile.
- Identify the app shape. Compiled binary (Go/Rust/C++) → use a
FROM scratchordistrolessfinal stage. Interpreted/runtime (Node/Python/Java/.NET) → use the matching-slim/distrolessruntime image. JVM/CLR may need a JRE-only final image. - Always use multi-stage. A
builderstage installs toolchains and compiles/installs dependencies; the final stage copies only the runtime artifacts. Never ship compilers, package caches, or dev headers. - Pin everything. Pin the base image by tag and digest (
image:tag@sha256:...). Pin OS and language package versions. This is what makes builds reproducible. - Order layers from least- to most-frequently-changing. Copy dependency manifests (
package.json,go.mod,requirements.txt,*.csproj) and install deps before copying application source. Source changes then don't bust the dependency layer. - Use BuildKit cache mounts (
RUN --mount=type=cache,...) for package-manager caches so repeated builds are fast without bloating the image. - Drop to a non-root user in the final stage with an explicit numeric UID/GID. Make the filesystem read-only-friendly.
- Minimize layers and surface. Combine related
RUNsteps, clean package caches in the same layer, and copy with--chowninstead of a separatechownlayer. - Add operational metadata.
WORKDIR,EXPOSE,ENV, OCILABELs,HEALTHCHECK, and an exec-formENTRYPOINT/CMD. - Add a
.dockerignore. Exclude.git,node_modules, build output, secrets, and CI files so the build context stays small and secrets never enter an image. - Lint and scan. Run
hadolint Dockerfileand a vulnerability scan (e.g.trivy image). Seescripts/check_dockerfile.pyfor a fast static audit you can run with zero dependencies.
What ships with it
8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- examples/go-multistage.Dockerfile 1.7 KB
- examples/node-multistage.Dockerfile 1.6 KB
- examples/python-multistage.Dockerfile 1.9 KB
- examples/review-walkthrough.md 2.8 KB
- references/best-practices.md 7.0 KB
- scripts/check_dockerfile.py 8.5 KB runs code
- templates/Dockerfile.template 2.0 KB
- templates/dockerignore.template 713 B
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 91 lines · 115 tokens per session scan B aa6d97532f0b
dockerfile-pro is a skill published in the GitHub repository JayRHa/AgentSkills (12 stars, last pushed 2mo ago), licensed MIT. It adds 115 tokens to every session and 1,989 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it B with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
devops-engineer
Use when setting up CI/CD pipelines, containerizing applications, or managing infrastructure as code. Invoke for pipelines, Docker, Kubernetes, cloud platforms, GitOps.
docker-management
Manage Docker containers, images, volumes, and Compose.
deployment-patterns
Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications. Use when setting up deployment infrastructure or planning releases.
workspaces
How an Open SWE workspace's sandbox image works and how to change it — create one, edit or fork an existing one, start from scratch, what setupscript and updatescript are for, why a nightly refresh failed, where the build logs are, and how to read a rebuild in progress. Read this whenever someone asks about…
openclaw-debugger
Trigger when an OpenClaw agent is broken, silent, crashing, stuck, not responding, returning empty output, or the user says "my agent is down", "agent not working", "/openclaw-debugger". Walks through the standard OpenClaw 2026.4 diagnosis checklist and prints a report.
docker-patterns
Docker and Docker Compose patterns for local development, container security, networking, volume strategies, and multi-service orchestration.