From 712a1d5e1e05bab2dc78ba0113e003dd2c0df9cd Mon Sep 17 00:00:00 2001 From: "Brian M. Long" Date: Thu, 21 May 2026 20:01:29 -0400 Subject: [PATCH 1/2] refactored to use base image --- Containerfile | 39 +++++++------- pom.xml | 54 +++++++++++++++++--- src/main/containerd/containerd-entrypoint.sh | 11 ---- src/main/containerd/setenv.sh | 2 + 4 files changed, 66 insertions(+), 40 deletions(-) delete mode 100644 src/main/containerd/containerd-entrypoint.sh diff --git a/Containerfile b/Containerfile index d37941c..d416332 100644 --- a/Containerfile +++ b/Containerfile @@ -1,5 +1,5 @@ -FROM debian:${debian.version}-slim +FROM docker.inteligr8.com/inteligr8/base:${base.image.version} # Configure standard JAVA parameters ENV JAVA_MEMORY_INIT=128m @@ -8,28 +8,31 @@ ENV JAVA_OPTS= ENV ENABLE_HOTSWAP=true ENV ENABLE_JDWP=true ENV DISABLE_HOTSWAP_PLUGINS= -ENV CACERT_INSTALL_PATH=/usr/local/share/ca-certificates -# Install curl & essentials +# these are effectively immutable; provided to be used by extending images +# the entrypoint will re-set these in case they are changed +ENV JAVA_HOME=/usr/local/lib/jvm/java-openjdk-jbr +ENV JRE_HOME=/usr/local/lib/jvm/java-openjdk-jbr + +# Install essentials for Java RUN apt update && \ - apt -y install curl libfreetype6 fontconfig fonts-dejavu + apt -y install libfreetype6 fontconfig fonts-dejavu ca-certificates-java # Download & Install JBR Java RUN mkdir -p /usr/local/lib/jvm && \ - curl -L https://cache-redirector.jetbrains.com/intellij-jbr/${jbr.filename} -o /usr/local/lib/jvm/java-openjdk-jbr.tar.gz && \ cd /usr/local/lib/jvm && \ + curl -L https://cache-redirector.jetbrains.com/intellij-jbr/${jbr.filename} -o java-openjdk-jbr.tar.gz && \ tar xzvf java-openjdk-jbr.tar.gz && \ mv ${jbr.basename} java-openjdk-jbr && \ mkdir -p java-openjdk-jbr/lib/hotswap && \ - rm java-openjdk-jbr.tar.gz + rm java-openjdk-jbr.tar.gz && \ + cd ../../bin && \ + ln -s ../lib/jvm/java-openjdk-jbr/bin/java . && \ + ln -s ../lib/jvm/java-openjdk-jbr/bin/keytool # Configure `cacerts` -RUN apt -y install ca-certificates-java && \ - cd /usr/local/bin && \ - ln -s ../lib/jvm/java-openjdk-jbr/bin/java . && \ - ln -s ../lib/jvm/java-openjdk-jbr/bin/keytool . && \ - update-ca-certificates && \ - cd ../lib/jvm/java-openjdk-jbr/lib/security && \ +RUN update-ca-certificates && \ + cd /usr/local/lib/jvm/java-openjdk-jbr/lib/security && \ rm cacerts && \ ln -s /etc/ssl/certs/java/cacerts . @@ -43,18 +46,12 @@ RUN mkdir -p /var/lib/jvm && cd /var/lib/jvm && \ mkdir lib lib-extra1 lib-extra2 lib-extra3 lib-extra4 lib-extra5 lib-extra6 lib-extra7 # Add our Docker container initialization scripts -ADD maven/setenv.sh /usr/local/bin/${namespace.prefix}-setenv.sh -ADD maven/containerd-entrypoint.sh /usr/local/bin -RUN chmod 755 /usr/local/bin/containerd-entrypoint.sh +ADD --chmod=755 maven/setenv.sh ${CONTAINERD_ENTRYPOINT_PATH}/10-setenv-${project.artifactId}.sh # Add our default hotswap configuration; may be overwritten in dev/classes* volumes -ADD maven/hotswap-agent.properties /var/lib/jvm/lib +ADD --chmod 644 maven/hotswap-agent.properties /var/lib/jvm/lib # Listening for Java debugger traffic EXPOSE 8000 -# Running as ROOT user for now -#USER java - -# Execute the Docker container initialization script -ENTRYPOINT [ "/usr/local/bin/containerd-entrypoint.sh" ] +CMD [ "${JAVA_HOME}/bin/java" ] diff --git a/pom.xml b/pom.xml index 5685bc2..171da53 100644 --- a/pom.xml +++ b/pom.xml @@ -8,11 +8,9 @@ pom - - - 12.14 - - ${project.artifactId} + + + 1.0-deb12 @@ -21,7 +19,6 @@ 17.0.14 - 17 1367.22 jbr_jcef-${jbr.version}-linux-x64-b${jbr.buildNumber} ${jbr.basename}.tar.gz @@ -30,6 +27,12 @@ inteligr8/${project.artifactId} ${project.version} docker.inteligr8.com + + + 3.5.0 + 3.1.4 + 1.19.0 + 1.0.7 @@ -42,14 +45,50 @@ + + maven-resources-plugin + ${maven-resources-plugin.version} + + + maven-deploy-plugin + ${maven-deploy-plugin.version} + org.eclipse.jkube kubernetes-maven-plugin - 1.19.0 + ${kubernetes-maven-plugin.version} + + + com.inteligr8 + regex-maven-plugin + ${regex-maven-plugin.version} + + com.inteligr8 + regex-maven-plugin + + + determine-jbr-major-version + validate + + replace-property + + + jbr.version + jbr.majorVersion + + + ([^.]+).* + $1 + + + + + + maven-resources-plugin @@ -68,7 +107,6 @@ org.eclipse.jkube kubernetes-maven-plugin - 1.19.0 diff --git a/src/main/containerd/containerd-entrypoint.sh b/src/main/containerd/containerd-entrypoint.sh deleted file mode 100644 index 14ee4b6..0000000 --- a/src/main/containerd/containerd-entrypoint.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -. /usr/local/bin/${namespace.prefix}-setenv.sh - -# update cacerts with any custom certs in /usr/local/share/ca-certificates -update-ca-certificates - -if [ -z $1 ]; then - exec /bin/bash -else - exec ${JAVA_HOME}/bin/java $@ -fi diff --git a/src/main/containerd/setenv.sh b/src/main/containerd/setenv.sh index 8504d70..145fc87 100644 --- a/src/main/containerd/setenv.sh +++ b/src/main/containerd/setenv.sh @@ -1,4 +1,6 @@ #!/bin/sh + +# immutable JAVA_HOME=/usr/local/lib/jvm/java-openjdk-jbr JRE_HOME=/usr/local/lib/jvm/java-openjdk-jbr JAVA_OPTS="${JAVA_OPTS} -Xms${JAVA_MEMORY_INIT} -Xmx${JAVA_MEMORY_MAX}" From f4140cf68a7988dc0ccd75d306555d44c95bb211 Mon Sep 17 00:00:00 2001 From: "Brian M. Long" Date: Thu, 21 May 2026 20:17:53 -0400 Subject: [PATCH 2/2] remove CMD --- Containerfile | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Containerfile b/Containerfile index d416332..772a20f 100644 --- a/Containerfile +++ b/Containerfile @@ -28,7 +28,7 @@ RUN mkdir -p /usr/local/lib/jvm && \ rm java-openjdk-jbr.tar.gz && \ cd ../../bin && \ ln -s ../lib/jvm/java-openjdk-jbr/bin/java . && \ - ln -s ../lib/jvm/java-openjdk-jbr/bin/keytool + ln -s ../lib/jvm/java-openjdk-jbr/bin/keytool . # Configure `cacerts` RUN update-ca-certificates && \ @@ -46,12 +46,10 @@ RUN mkdir -p /var/lib/jvm && cd /var/lib/jvm && \ mkdir lib lib-extra1 lib-extra2 lib-extra3 lib-extra4 lib-extra5 lib-extra6 lib-extra7 # Add our Docker container initialization scripts -ADD --chmod=755 maven/setenv.sh ${CONTAINERD_ENTRYPOINT_PATH}/10-setenv-${project.artifactId}.sh +ADD --chmod=755 maven/setenv.sh ${CONTAINERD_ENTRYPOINT_PATH}/10-setenv-${artifactId}.sh # Add our default hotswap configuration; may be overwritten in dev/classes* volumes -ADD --chmod 644 maven/hotswap-agent.properties /var/lib/jvm/lib +ADD --chmod=644 maven/hotswap-agent.properties /var/lib/jvm/lib # Listening for Java debugger traffic EXPOSE 8000 - -CMD [ "${JAVA_HOME}/bin/java" ]