containerization-assistant
Installation
SKILL.md
Containerization Assistant
Produce a Dockerfile that is minimal, reproducible, runs as non-root, and separates build tooling from the runtime image. Then produce a .dockerignore that keeps the build context small.
Step 1 — Detect the stack
Check the repo root for these markers, in order. First match wins.
| Marker file(s) | Stack | Builder stage base | Runtime stage base |
|---|---|---|---|
package.json + tsconfig.json |
Node (TS) | node:<ver>-slim |
gcr.io/distroless/nodejs<ver>-debian12 |
package.json only |
Node (JS) | node:<ver>-slim |
gcr.io/distroless/nodejs<ver>-debian12 |
go.mod |
Go | golang:<ver>-alpine |
gcr.io/distroless/static-debian12 (or scratch if CGO_ENABLED=0) |
Cargo.toml |
Rust | rust:<ver>-slim |
gcr.io/distroless/cc-debian12 |
pom.xml / build.gradle |
Java (JVM) | eclipse-temurin:<ver>-jdk |
eclipse-temurin:<ver>-jre (or distroless java) |
pyproject.toml / requirements.txt / Pipfile |
Python | python:<ver>-slim |
python:<ver>-slim (distroless python is viable if no C extensions) |
*.csproj / *.sln |
.NET | mcr.microsoft.com/dotnet/sdk:<ver> |
mcr.microsoft.com/dotnet/aspnet:<ver> |
Gemfile |
Ruby | ruby:<ver>-slim |
ruby:<ver>-slim |