56 lines
2.2 KiB
Docker
56 lines
2.2 KiB
Docker
|
|
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
|