关于 706-technologies-containers-docker
面向使用 Docker 构建 Java 容器镜像的团队,提供镜像构建、JVM 运行配置、安全和运维指导,且不绑定特定 Java 框架。
主要功能
- 01多阶段 Docker 构建
- 02基础镜像与运行时选择
- 03JVM 容器配置
- 04镜像安全实践
- 05可复现构建与运维
适用场景
- 01审查 Java Dockerfile
- 02缩小镜像体积
- 03提升容器镜像安全性
- 04检查 Docker 构建可复现性
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jabrena/ plinth --skill 706-technologies-containers-docker安装后在 Claude Code 中输入/706-technologies-containers-docker确认已加载。
附带文件references/706-technologies-containers-docker.md
详细介绍
使用 Docker 制定 Java 容器镜像最佳实践
帮助团队为 Java 应用构建安全、可复现且易于维护的 Docker 容器镜像,同时避免将指南与 Spring Boot、Quarkus 或 Micronaut 绑定。
本技能涵盖哪些内容?
- Java 应用的 Dockerfile 结构:多阶段构建、Maven 依赖缓存、确定性制品复制、
jlink自定义运行时,以及.dockerignore - 运行时镜像选择:Alpaquita 等微型发行版、最小化 JRE 镜像、适时固定版本或摘要、镜像标签,以及显式入口点
- JVM 容器适配:内存百分比标志、启动行为、优雅关闭信号、时区,以及可预测的运行时选项
- 安全默认设置:非 root 用户、最小权限、层中不包含密钥、减少包管理器、漏洞扫描、SBOM 认知,以及避免使用特权容器
- 运营就绪性:适用时配置健康检查、通过 stdout/stderr 记录日志、声明端口、控制镜像大小、保证构建可复现,以及 CI 验证
**范围:**面向 Java 项目的、与框架无关的 Docker 和容器镜像质量。框架运行时配置请参阅对应的 Spring Boot、Quarkus 或 Micronaut 技能。基于 Testcontainers 的测试请参阅相关测试技能。
约束
除非用户明确要求框架专属配置,否则建议仅限于 Dockerfile、镜像构建和运行时容器层面。编辑此仓库的 XML 源文件后,重新生成技能并验证构建。
- 强制要求:在同一变更集中提出 Java 或 Maven 修改之前,运行
./mvnw compile或mvn compile - 密钥:切勿将凭据、令牌、私钥、含密钥的 Maven 设置或特定环境的密钥烘焙进镜像层、标签、参数或日志
- 安全:优先采用非 root 执行、最小权限文件系统权限、微型运行时镜像和显式容器能力,而非默认使用特权
- JLINK:如果模块图已知、已在运行时验证,且与应用依赖兼容,则生产镜像优先使用
jlink自定义运行时 - 可复现性:有意固定基础镜像版本,说明摘要的权衡,明确构建输入,并避免在运行时启动过程中依赖网络
- JVM:通过 JVM 标志、优雅关闭行为和可观测的启动失败,考虑容器内存与 CPU 限制,再宣称已达到生产就绪状态
- 边界:Spring Boot 运行时行为请参阅
@301-frameworks-spring-boot-core,Quarkus 运行时行为请参阅@401-frameworks-quarkus-core,Micronaut 运行时行为请参阅@501-frameworks-micronaut-core,Testcontainers 配置请参阅对应的测试技能 - 验证:在推广变更之前,运行
./mvnw clean verify或mvn clean verify - 边缘情况:如果缺少目标 Java 版本、构建工具、部署平台、基础镜像策略、镜像仓库策略或安全扫描器,且这些信息会影响建议,请在编辑容器制品之前提出澄清问题
- 边缘情况:如果请求的变更与安全策略、镜像来源证明、隔离网络构建或运行时平台约束冲突,请说明权衡并征求确认
何时使用此技能
- 审查 Java Dockerfile
- 提升 Docker 镜像安全性
- 为 Java 容器添加 jlink 运行时
- 为 Java 项目添加容器化
- 优化 Java 容器镜像大小
- 审查 Docker 构建的可复现性
工作流
- 阅读参考资料并评估容器环境
阅读 references/706-technologies-containers-docker.md,并在提出更改前检查当前的 Dockerfile、.dockerignore、Maven 构建输入、镜像构建脚本、CI 作业、镜像仓库策略和部署限制。
- 确认运行时和供应链限制
确认 Java 版本、构建工具、jlink 模块需求、微型发行版兼容性、目标平台、基础镜像策略、镜像仓库要求、漏洞扫描器、SBOM 要求、内存限制、公开端口以及运行就绪要求。
- 应用与容器对齐的更改
按照参考模式和项目约定实现或重构 Docker 和容器构建产物;除非明确提出要求,否则不处理框架特定的运行时行为。
- 运行验证并报告结果
执行适当的构建、镜像构建、扫描、冒烟测试和生成器检查;总结更改内容、已验证事项以及任何剩余的容器风险。
参考资料
有关详细指导、示例和限制,请参阅 references/706-technologies-containers-docker.md。