用途:帮助为 Python、Node.js、Go、Rust、Java 应用编写生产级 Dockerfile,实现多阶段构建、安全加固与语言特定优化。适用触发场景包括:为某语言应用编写 Dockerfile、优化镜像体积、使用多阶段构建、以非 root 用户加固、使用 distroless 基础镜像、添加 BuildKit 缓存挂载、防止密钥泄漏到镜像层。
主要能力:多阶段构建将构建环境与运行环境分离,可减小镜像 80-95%;基础镜像选择决策(如 Go 静态用 golang:1.22-alpine 构建、gcr.io/distroless/static-debian12 运行,约 10-30MB;Rust 静态用 rust:1.75-alpine 构建、scratch 运行,约 5-15MB;Python 用 python:3.12-slim,约 200-400MB;Node.js 用 node:20-alpine,约 150-300MB;Java 用 maven 构建、eclipse-temurin JRE 运行,约 200-350MB)。BuildKit 特性:--mount=type=cache 持久化包管理器缓存、--mount=type=secret 注入密钥、--mount=type=ssh 转发 SSH。层优化按变更频率排序指令。安全加固:非 root 用户、BuildKit 密钥挂载、Trivy/Docker Scout 漏洞扫描、HEALTHCHECK。.dockerignore 排除无关文件。
使用方式:启用 BuildKit 用 export DOCKER_BUILDKIT=1 或 docker buildx build;密钥构建用 docker buildx build --secret id=github_token,src=./token.txt .;校验用 python scripts/validate_dockerfile.py Dockerfile、trivy image myimage:latest、docker history。
适用场景:容器化生产部署、CI 构建推送、Kubernetes 部署、基础设施即代码。
限制:不覆盖 Docker Compose;具体脚本与参考文件内容暂未提供。