java-docker by pluginagentmarketplace/custom-plugin-java
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-java --skill java-docker使用优化的 Dockerfile 和 JVM 设置来容器化 Java 应用程序。
此技能涵盖了 Java 的 Docker 最佳实践,包括多阶段构建、JVM 容器设置、安全加固和层优化。
在以下情况下使用:
# 多阶段优化 Dockerfile
FROM eclipse-temurin:21-jdk-alpine AS builder
WORKDIR /app
# 缓存依赖项
COPY pom.xml .
COPY .mvn .mvn
RUN mvn dependency:go-offline -B
# 构建并提取层
COPY src ./src
RUN mvn package -DskipTests && \
java -Djarmode=layertools -jar target/*.jar extract
# 运行时阶段
FROM eclipse-temurin:21-jre-alpine
# 安全:非 root 用户
RUN addgroup -S app && adduser -S app -G app
USER app
WORKDIR /app
# 按变更频率顺序复制层
COPY --from=builder /app/dependencies/ ./
COPY --from=builder /app/spring-boot-loader/ ./
COPY --from=builder /app/snapshot-dependencies/ ./
COPY --from=builder /app/application/ ./
# JVM 容器设置
ENV JAVA_OPTS="-XX:+UseContainerSupport \
-XX:MaxRAMPercentage=75.0 \
-XX:+ExitOnOutOfMemoryError \
-XX:+UseG1GC"
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=3s --start-period=30s \
CMD wget -qO- http://localhost:8080/actuator/health/liveness || exit 1
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS org.springframework.boot.loader.launch.JarLauncher"]
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
# 推荐的生产环境设置
JAVA_OPTS="
-XX:+UseContainerSupport
-XX:MaxRAMPercentage=75.0
-XX:InitialRAMPercentage=50.0
-XX:+ExitOnOutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/tmp/heapdump.hprof
-XX:+UseG1GC
-Djava.security.egd=file:/dev/./urandom
"
| 镜像 | 大小 | 安全性 | 使用场景 |
|---|---|---|---|
| temurin:21-jre | ~200MB | 良好 | 通用 |
| temurin:21-jre-alpine | ~100MB | 良好 | 大小优化 |
| distroless/java21 | ~80MB | 最佳 | 生产环境 |
# 非 root 用户
RUN addgroup -S app && adduser -S app -G app
USER app
# 只读文件系统
# (在运行时使用 --read-only 配置)
# 使用 distroless 镜像,无 shell 访问权限
FROM gcr.io/distroless/java21-debian12
# 健康检查
HEALTHCHECK --interval=30s --timeout=3s \
CMD wget -qO- localhost:8080/actuator/health || exit 1
| 问题 | 原因 | 解决方案 |
|---|---|---|
| OOMKilled | 堆内存 > 限制 | 设置 MaxRAMPercentage |
| 启动缓慢 | 镜像过大 | 使用多阶段构建 |
| 权限被拒绝 | 需要 root 权限 | 修复文件权限 |
| 无内存信息 | JVM 版本过旧 | 更新到 Java 11+ |
□ 检查容器内存限制
□ 验证 JVM 是否识别容器限制
□ 检查健康检查配置
□ 扫描镜像漏洞
□ 在资源限制下测试
Skill("java-docker")
java-maven-gradle - 构建集成java-microservices - K8s 部署每周安装量
105
仓库
GitHub 星标数
28
首次出现
2026年1月21日
安全审计
安装于
opencode91
gemini-cli89
codex88
github-copilot80
amp72
kimi-cli68
Containerize Java applications with optimized Dockerfiles and JVM settings.
This skill covers Docker best practices for Java including multi-stage builds, JVM container settings, security hardening, and layer optimization.
Use when you need to:
# Multi-stage optimized Dockerfile
FROM eclipse-temurin:21-jdk-alpine AS builder
WORKDIR /app
# Cache dependencies
COPY pom.xml .
COPY .mvn .mvn
RUN mvn dependency:go-offline -B
# Build and extract layers
COPY src ./src
RUN mvn package -DskipTests && \
java -Djarmode=layertools -jar target/*.jar extract
# Runtime stage
FROM eclipse-temurin:21-jre-alpine
# Security: non-root user
RUN addgroup -S app && adduser -S app -G app
USER app
WORKDIR /app
# Copy layers in order of change frequency
COPY --from=builder /app/dependencies/ ./
COPY --from=builder /app/spring-boot-loader/ ./
COPY --from=builder /app/snapshot-dependencies/ ./
COPY --from=builder /app/application/ ./
# JVM container settings
ENV JAVA_OPTS="-XX:+UseContainerSupport \
-XX:MaxRAMPercentage=75.0 \
-XX:+ExitOnOutOfMemoryError \
-XX:+UseG1GC"
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=3s --start-period=30s \
CMD wget -qO- http://localhost:8080/actuator/health/liveness || exit 1
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS org.springframework.boot.loader.launch.JarLauncher"]
# Recommended production settings
JAVA_OPTS="
-XX:+UseContainerSupport
-XX:MaxRAMPercentage=75.0
-XX:InitialRAMPercentage=50.0
-XX:+ExitOnOutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/tmp/heapdump.hprof
-XX:+UseG1GC
-Djava.security.egd=file:/dev/./urandom
"
| Image | Size | Security | Use Case |
|---|---|---|---|
| temurin:21-jre | ~200MB | Good | General use |
| temurin:21-jre-alpine | ~100MB | Good | Size-optimized |
| distroless/java21 | ~80MB | Best | Production |
# Non-root user
RUN addgroup -S app && adduser -S app -G app
USER app
# Read-only filesystem
# (Configure at runtime with --read-only)
# No shell access with distroless
FROM gcr.io/distroless/java21-debian12
# Health check
HEALTHCHECK --interval=30s --timeout=3s \
CMD wget -qO- localhost:8080/actuator/health || exit 1
| Problem | Cause | Solution |
|---|---|---|
| OOMKilled | Heap > limit | Set MaxRAMPercentage |
| Slow startup | Large image | Multi-stage build |
| Permission denied | Root required | Fix file permissions |
| No memory info | Old JVM | Update to Java 11+ |
□ Check container memory limits
□ Verify JVM sees container limits
□ Review health check configuration
□ Scan image for vulnerabilities
□ Test with resource constraints
Skill("java-docker")
java-maven-gradle - Build integrationjava-microservices - K8s deploymentWeekly Installs
105
Repository
GitHub Stars
28
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode91
gemini-cli89
codex88
github-copilot80
amp72
kimi-cli68
Azure 升级评估与自动化工具 - 轻松迁移 Functions 计划、托管层级和 SKU
104,900 周安装
盲点侦探:系统识别非虚构写作缺失内容,提升内容全面性与可信度
120 周安装
OpenClaw Feeds RSS聚合器:新闻、游戏、金融信息源一键获取,支持流式JSON输出
122 周安装
union-search-skill:跨平台联合搜索工具,支持20+平台无API密钥搜索
118 周安装
Ant Design Vue 4.x 中文指南:Vue 3 UI 组件库安装、使用与API详解
126 周安装
API认证最佳实践指南:JWT、OAuth 2.0、API密钥安全实现与Node.js示例
120 周安装
Google Workspace Python集成教程:OAuth认证Gmail和日历API操作指南
121 周安装