Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when you need framework-agnostic Docker and container image guidance for Java projects - Dockerfile design, multi-stage Maven builds, jlink custom runtimes, micro runtime distributions such as Alpaquita, JVM container ergonomics, non-root execution, image metadata, .dockerignore, reproducible builds, vulnerability scanning, SBOM awareness, and production-safe container defaults. This should trigger for requests such as Review Java Dockerfile; Improve Docker image security; Add jlink runtime
.claude/skills/jabrena-706-technologies-containers-docker/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-18 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-07 | ✓→✓ | = Same ✓ | 26% | 0% |
| case-08 | ✓→✓ | = Same ✓ | 54% | 0% |
| case-09 | ✓→✓ | = Same ✓ | 46% | 0% |
| case-10 | ✓→✓ | = Same ✓ | -20% | 0% |
Help teams build secure, reproducible, and maintainable Docker container images for Java applications without coupling the guidance to Spring Boot, Quarkus, or Micronaut.
What is covered in this Skill?
jlink custom runtimes, and .dockerignoreScope: Framework-agnostic Docker and container-image quality for Java projects. For framework runtime wiring, defer to the matching Spring Boot, Quarkus, or Micronaut skill. For Testcontainers-based tests, defer to the relevant testing skill.
Keep recommendations at the Dockerfile, image-build, and runtime-container layer unless the user explicitly asks for framework-specific configuration. After editing this repository's XML sources, regenerate skills and verify the build.
./mvnw compile or mvn compile before proposing Java or Maven changes in the same change setjlink custom runtimes for production images when the module graph is known, validated at runtime, and compatible with the application's dependencies@301-frameworks-spring-boot-core, Quarkus runtime behavior to @401-frameworks-quarkus-core, Micronaut runtime behavior to @501-frameworks-micronaut-core, and Testcontainers setup to the matching testing skill./mvnw clean verify or mvn clean verify before promoting changesRead references/706-technologies-containers-docker.md and inspect current Dockerfiles, .dockerignore, Maven build inputs, image build scripts, CI jobs, registry policy, and deployment constraints before proposing changes.
Confirm Java version, build tool, jlink module requirements, micro distro compatibility, target platform, base-image policy, registry requirements, vulnerability scanner, SBOM expectations, memory limits, exposed ports, and operational readiness needs.
Implement or refactor Docker and container build artifacts following the reference patterns and project conventions, keeping framework-specific runtime behavior out of scope unless explicitly requested.
Execute appropriate build, image build, scan, smoke-test, and generator checks; summarize what changed, what was verified, and any remaining container risks.
For detailed guidance, examples, and constraints, see references/706-technologies-containers-docker.md.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-07 | pass→pass | 16,492 | 17,699 | +7% | 1 | 1 | 0% | 3,036 | 3,818 | +26% | 0 | 0 | — |
case-08 | pass→pass | 14,347 | 38,056 | +165% | 1 | 1 | 0% | 2,478 | 3,817 | +54% | 0 | 0 | — |
case-09 | pass→pass | 19,017 | 8,753 | -54% | 1 | 1 | 0% | 1,713 | 2,500 | +46% | 0 | 0 | — |
case-10 | pass→pass | 14,345 | 5,675 | -60% | 1 | 1 | 0% | 2,380 | 1,900 | -20% | 0 | 0 | — |
case-16 | fail→fail | 9,827 | 2,792 | -72% | 1 | 1 | 0% | 1,547 | 1,365 | -12% | 0 | 0 | — |
case-01 | fail→fail | 18,812 | 6,657 | -65% | 1 | 1 | 0% | 3,207 | 1,327 | -59% | 0 | 0 | — |
case-02 | fail→fail | 25,165 | 7,462 | -70% | 1 | 1 | 0% | 4,469 | 1,293 | -71% | 0 | 0 | — |
case-03 | fail→fail | 20,235 | 29,790 | +47% | 1 | 1 | 0% | 3,548 | 6,393 | +80% | 0 | 0 | — |
case-04 | fail→fail | 19,438 | 14,743 | -24% | 1 | 1 | 0% | 3,563 | 3,947 | +11% | 0 | 0 | — |
case-05 | pass→pass | 17,048 | 14,265 | -16% | 1 | 1 | 0% | 2,798 | 3,288 | +18% | 0 | 0 | — |
case-06 | pass→pass | 89,764 | 12,881 | -86% | 1 | 1 | 0% | 2,457 | 3,510 | +43% | 0 | 0 | — |
case-11 | pass→pass | 13,363 | 11,989 | -10% | 1 | 1 | 0% | 2,285 | 3,142 | +38% | 0 | 0 | — |
case-12 | pass→pass | 12,379 | 8,031 | -35% | 1 | 1 | 0% | 2,367 | 2,474 | +5% | 0 | 0 | — |
case-13 | pass→pass | 13,715 | 13,490 | -2% | 1 | 1 | 0% | 2,404 | 3,154 | +31% | 0 | 0 | — |
case-14 | pass→pass | 12,114 | 8,916 | -26% | 1 | 1 | 0% | 2,117 | 2,541 | +20% | 0 | 0 | — |
case-15 | fail→fail | 17,938 | 17,490 | -2% | 1 | 1 | 0% | 3,346 | 4,157 | +24% | 0 | 0 | — |
case-17 | pass→pass | 4,494 | 3,676 | -18% | 1 | 1 | 0% | 766 | 1,549 | +102% | 0 | 0 | — |
case-18 | fail→pass | 15,646 | 10,189 | -35% | 1 | 1 | 0% | 2,651 | 2,638 | -0% | 0 | 0 | — |
case-19 | pass→pass | 9,135 | 7,402 | -19% | 1 | 1 | 0% | 1,679 | 2,169 | +29% | 0 | 0 | — |
case-20 | pass→pass | 15,545 | 13,859 | -11% | 1 | 1 | 0% | 2,647 | 3,449 | +30% | 0 | 0 | — |
case-21 | pass→pass | 16,559 | 7,111 | -57% | 1 | 1 | 0% | 2,524 | 2,045 | -19% | 0 | 0 | — |
case-22 | pass→pass | 17,084 | 17,557 | +3% | 1 | 1 | 0% | 2,997 | 4,305 | +44% | 0 | 0 | — |
case-23 | pass→pass | 17,959 | 8,565 | -52% | 1 | 1 | 0% | 3,125 | 2,420 | -23% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 21 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of 0 percentage points is the difference between those two pass rates over the 21 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.