skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
pluginagentmarketplace/custom-plugin-java255 installs

java-docker

Containerize Java applications - Dockerfile optimization, JVM settings, security

How do I install this agent skill?

npx skills add https://github.com/pluginagentmarketplace/custom-plugin-java --skill java-docker
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill provides templates and best practices for containerizing Java applications. It contains no malicious code or patterns. A low-risk surface for indirect prompt injection exists as the skill processes user-provided task descriptions using tools like Bash and Write without explicit sanitization logic.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

  • Runlayerwarn

    7/7 files flagged

  • ZeroLeakspass

    Score: 93/100 · 2 sections analyzed

What does this agent skill do?

Java Docker Skill

Containerize Java applications with optimized Dockerfiles and JVM settings.

Overview

This skill covers Docker best practices for Java including multi-stage builds, JVM container settings, security hardening, and layer optimization.

When to Use This Skill

Use when you need to:

  • Create optimized Java Dockerfiles
  • Configure JVM for containers
  • Implement security best practices
  • Reduce image size
  • Set up health checks

Topics Covered

Dockerfile Optimization

  • Multi-stage builds
  • Layer caching strategy
  • Spring Boot layered JARs
  • Dependency caching

JVM Container Settings

  • UseContainerSupport
  • MaxRAMPercentage
  • GC selection
  • Exit on OOM

Security

  • Non-root users
  • Read-only filesystem
  • Vulnerability scanning
  • Secrets handling

Quick Reference

# 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"]

JVM Container Flags

# 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
"

Base Image Comparison

ImageSizeSecurityUse Case
temurin:21-jre~200MBGoodGeneral use
temurin:21-jre-alpine~100MBGoodSize-optimized
distroless/java21~80MBBestProduction

Security Best Practices

# 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

Troubleshooting

Common Issues

ProblemCauseSolution
OOMKilledHeap > limitSet MaxRAMPercentage
Slow startupLarge imageMulti-stage build
Permission deniedRoot requiredFix file permissions
No memory infoOld JVMUpdate to Java 11+

Debug Checklist

□ Check container memory limits
□ Verify JVM sees container limits
□ Review health check configuration
□ Scan image for vulnerabilities
□ Test with resource constraints

Usage

Skill("java-docker")

Related Skills

  • java-maven-gradle - Build integration
  • java-microservices - K8s deployment

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/pluginagentmarketplace/custom-plugin-java/java-docker">View java-docker on skillZs</a>