CtrlK
BlogDocsLog inGet started
Tessl Logo

pantheon-ai/dockerfile-toolkit

Complete dockerfile toolkit with generation and validation capabilities

94

Quality

94%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonvalidator/evals/scenario-4/

{
  "context": "Agent identifies multi-stage build opportunity for a Go application and produces an optimised Dockerfile using a named build stage and distroless or Alpine final image.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Multi-stage build opportunity identified",
      "description": "Agent correctly identifies that Go produces a statically compiled binary and the build toolchain (golang:1.21 ~900MB) does not need to be in the final image.",
      "max_score": 20
    },
    {
      "name": "Named AS build stage used",
      "description": "Proposed Dockerfile uses 'FROM golang:1.21 AS build' and then a separate final FROM stage with COPY --from=build.",
      "max_score": 25
    },
    {
      "name": "Minimal final base image chosen",
      "description": "Final stage uses gcr.io/distroless/base-debian12, distroless/static, or alpine:3.x rather than the full golang image.",
      "max_score": 20
    },
    {
      "name": "Image size reduction estimate provided",
      "description": "Agent provides a reasonable estimate of image size reduction (e.g., from ~900MB to ~20-30MB for distroless static) and explains why the toolchain layers are dropped.",
      "max_score": 15
    },
    {
      "name": "--target build debugging benefit explained",
      "description": "Agent explains that named stages allow 'docker build --target build' to access the intermediate build stage for CI debugging without exposing the final runtime image.",
      "max_score": 10
    },
    {
      "name": "Security improvements noted",
      "description": "Agent notes that distroless images have no shell, package manager, or unnecessary system libraries, reducing the attack surface.",
      "max_score": 10
    }
  ]
}

tile.json