SuperAPI AI 工具集

java-docker

编程与开发

查看项目

更新于 10-16 08:07

技能介绍

用途:该技能面向 Java 应用的容器化,提供 Dockerfile 优化、JVM 容器设置与安全加固方面的最佳实践,适合需要创建优化 Java Dockerfile、为容器配置 JVM、落实安全实践、减小镜像体积或设置健康检查的场景。

主要能力:Dockerfile 优化方面,覆盖多阶段构建、层缓存策略、Spring Boot 分层 JAR 与依赖缓存;JVM 容器设置方面,涉及 UseContainerSupport、MaxRAMPercentage、GC 选择与 OOM 退出;安全方面,包含非 root 用户、只读文件系统、漏洞扫描与密钥处理。资料还给出一份多阶段优化 Dockerfile 示例,从 eclipse-temurin:21-jdk-alpine 构建阶段开始,先复制 pom.xml 与 .mvn 并执行 mvn dependency:go-offline -B 缓存依赖,再复制 src 并执行 mvn package -DskipTests,随后通过 java -Djarmode=layertools -jar target/*.jar extract 提取分层;运行阶段使用 eclipse-temurin:21-jre-alpine,创建并切换到非 root 用户 app,按变更频率依次复制 dependencies、spring-boot-loader、snapshot-dependencies、application 各层,并设置 JAVA_OPTS。

使用方式:以 Skill("java-docker") 方式调用。示例中的 JVM 参数包含 -XX:+UseContainerSupport、-XX:MaxRAMPercentage=75.0、-XX:+ExitOnOutOfMemoryError、-XX:+UseG1GC,另有 InitialRAMPercentage、HeapDumpOnOutOfMemoryError 及 HeapDumpPath 等推荐生产设置,并暴露 8080 端口,配置 HEALTHCHECK 调用 actuator 健康端点。基础镜像对比列出 temurin:21-jre(约 200MB)、temurin:21-jre-alpine(约 100MB)、distroless/java21(约 80MB)。

适用场景与限制:适用于 Java 应用容器化与镜像优化,包括配合 Maven/Gradle 构建集成和微服务在 K8s 的部署。资料未提供具体收费、价格或平台支持范围;给出的镜像大小为参考值,实际结果可能不同,排障可参考 OOMKilled、启动慢、权限拒绝、无内存信息等常见问题与检查清单。