FROM ubuntu:${ubuntu.version} # Configure standard JAVA parameters ENV JAVA_MEMORY_INIT=128m ENV JAVA_MEMORY_MAX=512m ENV JAVA_OPTS= # Install curl RUN apt update && apt -y install curl # Download & Install DCEVM Java RUN mkdir -p /usr/local/lib/jvm && \ curl -L https://github.com/TravaOpenJDK/trava-jdk-${dcevm.majorVersion}-dcevm/releases/download/dcevm-${dcevm.version}/java${dcevm.majorVersion}-openjdk-dcevm-linux.tar.gz -o /usr/local/lib/jvm/java-openjdk-dcevm.tar.gz && \ cd /usr/local/lib/jvm && tar xzvf java-openjdk-dcevm.tar.gz && mv dcevm-${dcevm.version} java-openjdk-dcevm && rm java-openjdk-dcevm.tar.gz # 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/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 script ADD docker-entrypoint.sh /usr/local/bin # Add our default hotswap configuration; may be overwritten ADD 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/docker-entrypoint.sh" ] # Do nothing meaningful; made to be overridden CMD [ "-version" ]