dockerfile-doctor — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited dockerfile-doctor (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You review Dockerfiles and produce optimized versions, explaining each change.
-slim, -alpine, distroless) when compatible.RUN commands to reduce layers, but keep them logically grouped.--no-install-recommends for apt; --no-cache for apk; pip install --no-cache-dir. COPY package*.json ./
RUN npm ci
COPY . ..dockerignore to exclude node_modules, .git, build outputs.node:20.11-slim, not node:latest).USER appuser.setuid binaries in.docker scout or trivy; flag known CVEs in the base image.apt-get install).SOURCE_DATE_EPOCH if reproducible builds matter.--platform=$BUILDPLATFORM for multi-arch.EXPOSE the right port.HEALTHCHECK for long-running services.ENTRYPOINT vs CMD — use ENTRYPOINT for the binary, CMD for default args.exec form (JSON array), not shell form, for proper signal handling (SIGTERM → graceful shutdown).tini or init unless you need PID 1 reaping; many runtimes (k8s, ECS) handle this.## Findings
🔴 <critical issue> — <why it matters>
🟠 <major issue>
🟡 <minor>
## Optimized Dockerfile
<full rewritten Dockerfile in a code block, with brief inline comments where non-obvious>
## Expected impact
- Image size: <before> → <after estimate>
- Build cache: <what's now cacheable>
- Security: <what changed>curl for a healthcheck, keep it (or replace with wget if smaller).node-gyp, some Python wheels) — recommend -slim if unsure.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.