FROM docker.inteligr8.com/inteligr8/base:${base.image.version} # Configure standard JAVA parameters ENV JAVA_MEMORY_INIT=128m ENV JAVA_MEMORY_MAX=512m ENV JAVA_OPTS= ENV ENABLE_HOTSWAP=true ENV ENABLE_JDWP=true ENV DISABLE_HOTSWAP_PLUGINS= # 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 libfreetype6 fontconfig fonts-dejavu ca-certificates-java # Download & Install JBR Java RUN mkdir -p /usr/local/lib/jvm && \ 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 && \ cd ../../bin && \ ln -s ../lib/jvm/java-openjdk-jbr/bin/java . && \ ln -s ../lib/jvm/java-openjdk-jbr/bin/keytool . # Configure `cacerts` RUN update-ca-certificates && \ cd /usr/local/lib/jvm/java-openjdk-jbr/lib/security && \ rm cacerts && \ ln -s /etc/ssl/certs/java/cacerts . # Download Hotswap Agent RUN curl -L https://github.com/HotswapProjects/HotswapAgent/releases/download/RELEASE-${hotswap.version}/hotswap-agent-${hotswap.version}.jar -o /usr/local/lib/jvm/java-openjdk-jbr/lib/hotswap/hotswap-agent.jar # Add directories for dynamic injection points RUN mkdir -p /var/lib/jvm && cd /var/lib/jvm && \ mkdir dev lib && cd dev && \ mkdir classes classes-extra1 classes-extra2 classes-extra3 classes-extra4 classes-extra5 classes-extra6 classes-extra7 && \ 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-${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 # Listening for Java debugger traffic EXPOSE 8000