diff --git a/Dockerfile b/Dockerfile index 969019a..1621ef3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,12 +20,11 @@ COPY src/ src/ COPY --from=frontend /ui/dist/ src/main/resources/static/ RUN --mount=type=cache,target=/root/.m2/repository ./mvnw package -DskipTests -U -B -# Runtime: Chainguard Wolfi-based JRE (glibc, daily CVE refresh, non-root by default) -FROM cgr.dev/chainguard/jre:openjdk-21 +# Runtime: BellSoft Liberica JRE 21 on Alpaquita Linux (glibc, minimal, 199 MB) +FROM bellsoft/liberica-runtime-container:jre-21-slim-glibc WORKDIR /app -USER root -RUN mkdir -p /data/jars && chown -R nonroot:nonroot /data -COPY --chown=nonroot:nonroot --from=build /build/target/*.jar app.jar -USER nonroot +RUN mkdir -p /data/jars && chown -R nobody:nobody /data /app +COPY --chown=nobody:nobody --from=build /build/target/*.jar app.jar +USER nobody EXPOSE 8080 ENTRYPOINT ["java", "-jar", "app.jar"] diff --git a/docker/runtime-base/Dockerfile b/docker/runtime-base/Dockerfile index f48daa8..ca75e8f 100644 --- a/docker/runtime-base/Dockerfile +++ b/docker/runtime-base/Dockerfile @@ -1,7 +1,6 @@ -# Wolfi-based JRE, glibc, daily-rebuilt with near-zero baseline CVEs, -# signed images + SBOM published, non-root by default. Pin by digest in -# production overlays. -FROM cgr.dev/chainguard/jre:openjdk-21 +# BellSoft Liberica JRE 21 on Alpaquita Linux (glibc, minimal, 199 MB). +# Pin by digest in production overlays. +FROM bellsoft/liberica-runtime-container:jre-21-slim-glibc WORKDIR /app @@ -15,3 +14,4 @@ COPY cameleer-log-appender.jar /app/cameleer-log-appender.jar # -cp + main; native: exec) and overrides via withCmd("sh","-c",...). # Setting one here only creates drift between this image and the actual # runtime command. +USER nobody