[SYSTEMDS-3871] Java 17 MainDocker Image
diff --git a/docker/sysds.Dockerfile b/docker/sysds.Dockerfile
index 2af74df..359bb14 100644
--- a/docker/sysds.Dockerfile
+++ b/docker/sysds.Dockerfile
@@ -19,53 +19,59 @@
#
#-------------------------------------------------------------
-FROM ubuntu:20.04
+FROM ubuntu:24.04
WORKDIR /usr/src/
-# Maven
-ENV MAVEN_VERSION 3.8.3
-ENV MAVEN_HOME /usr/lib/mvn
-ENV PATH $MAVEN_HOME/bin:$PATH
-# Java
-ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
-ENV PATH $JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
-ENV SYSTEMDS_ROOT=/usr/src/systemds
-ENV PATH $SYSTEMDS_ROOT/bin:$PATH
-ENV SYSDS_QUIET=1
-
+# Do basic updates on the image
RUN apt-get update -qq \
&& apt-get upgrade -y \
&& apt-get install -y --no-install-recommends \
- wget \
- git \
- ca-certificates \
- && apt-get clean \
- && mkdir -p /usr/lib/jvm \
+ wget \
+ git \
+ ca-certificates \
+ && apt-get clean
+
+# Set environment variables
+# Maven
+ENV MAVEN_VERSION=3.9.9
+ENV MAVEN_HOME=/usr/lib/mvn
+# Java
+ENV JAVA_HOME=/usr/lib/jvm/jdk-17.0.15+6
+ENV PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
+ENV SYSTEMDS_ROOT=/usr/src/systemds
+ENV PATH=$SYSTEMDS_ROOT/bin:$PATH
+ENV SYSDS_QUIET=1
+
+# Download Java and Mvn
+RUN mkdir -p /usr/lib/jvm \
&& wget -qO- \
- https://github.com/AdoptOpenJDK/openjdk11-upstream-binaries/releases/download/jdk-11.0.13%2B8/OpenJDK11U-jdk_x64_linux_11.0.13_8.tar.gz | tar xzf - \
- && mv openjdk-11.0.13_8 /usr/lib/jvm/java-11-openjdk-amd64 \
+ https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.15%2B6/OpenJDK17U-jdk_x64_linux_hotspot_17.0.15_6.tar.gz | tar xzf - \
+ && mv jdk-17.0.15+6 /usr/lib/jvm/jdk-17.0.15+6 \
&& wget -qO- \
http://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz | tar xzf - \
- && mv apache-maven-$MAVEN_VERSION /usr/lib/mvn \
- && git clone --depth 1 https://github.com/apache/systemds.git systemds && \
+ && mv apache-maven-$MAVEN_VERSION /usr/lib/mvn
+
+# Build the system
+RUN git clone --depth 1 https://github.com/apache/systemds.git systemds && \
cd /usr/src/systemds/ && \
- mvn --no-transfer-progress clean package -P distribution && \
- rm -r .git && \
- rm -r .github && \
- rm -r target/javadoc** && \
- rm -r target/apidocs** && \
- rm -r target/classes && \
- rm -r target/test-classes && \
- rm -r target/hadoop-test && \
- rm -r target/maven-archiver && \
- rm -r target/systemds-** && \
- rm -r docs && \
- rm -r src && \
- rm -r /usr/lib/mvn && \
- rm -r CONTRIBUTING.md && \
- rm -r pom.xml && \
- rm -r ~/.m2
+ mvn --no-transfer-progress clean package -P distribution
+
+# Remove all unnecessary files from the Image
+RUN rm -rf .git && \
+ rm -rf .github && \
+ rm -rf target/javadoc** && \
+ rm -rf target/apidocs** && \
+ rm -rf target/classes && \
+ rm -rf target/test-classes && \
+ rm -rf target/maven-archiver && \
+ rm -rf target/systemds-** && \
+ rm -rf docs && \
+ rm -rf src && \
+ rm -rf /usr/lib/mvn && \
+ rm -rf CONTRIBUTING.md && \
+ rm -rf pom.xml && \
+ rm -rf ~/.m2
COPY docker/mountFolder/main.dml /input/main.dml