1919#
2020# -------------------------------------------------------------
2121
22- FROM ubuntu:24.04 @sha256:6015f66923d7afbc53558d7ccffd325d43b4e249f41a6e93eef074c9505d2233
22+ FROM alpine:3.20 @sha256:de4fe7064d8f98419ea6b49190df1abbf43450c1702eeb864fe9ced453c1cc5f AS compile-image
2323
2424WORKDIR /usr/src/
2525
2626# Do basic updates on the image
27- RUN apt-get update -qq \
28- && apt-get upgrade -y \
29- && apt-get install -y --no-install-recommends \
27+ RUN apk add --no-cache \
3028 wget \
3129 git \
3230 ca-certificates \
33- && apt-get clean
31+ bash
3432
3533# Set environment variables
3634# Maven
@@ -43,11 +41,11 @@ ENV SYSTEMDS_ROOT=/usr/src/systemds
4341ENV PATH=$SYSTEMDS_ROOT/bin:$PATH
4442ENV SYSDS_QUIET=1
4543
46- # Download Java and Mvn
44+ # Download Mvn and JDK
4745RUN mkdir -p /usr/lib/jvm \
4846 && wget -qO- \
49- 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 - \
50- && mv jdk-17.0.15+6 /usr/lib/jvm/jdk-17.0.15+6 \
47+ https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.15%2B6/OpenJDK17U-jdk_x64_alpine-linux_hotspot_17 .0.15_6.tar.gz | tar xzf - \
48+ && mv jdk-17.0.15+6 $JAVA_HOME \
5149 && wget -qO- \
5250 http://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz | tar xzf - \
5351 && mv apache-maven-$MAVEN_VERSION /usr/lib/mvn
@@ -57,8 +55,11 @@ RUN git clone --depth 1 https://github.com/apache/systemds.git systemds && \
5755 cd /usr/src/systemds/ && \
5856 mvn --no-transfer-progress clean package -P distribution
5957
58+ COPY docker/mountFolder/main.dml /input/main.dml
59+
6060# Remove all unnecessary files from the Image
61- RUN rm -rf .git && \
61+ RUN cd /usr/src/systemds/ && \
62+ rm -rf .git && \
6263 rm -rf .github && \
6364 rm -rf target/javadoc** && \
6465 rm -rf target/apidocs** && \
@@ -71,9 +72,55 @@ RUN rm -rf .git && \
7172 rm -rf /usr/lib/mvn && \
7273 rm -rf CONTRIBUTING.md && \
7374 rm -rf pom.xml && \
74- rm -rf ~/.m2
75+ rm -rf ~/.m2 && \
76+ rm -rf docker && \
77+ rm -rf .mvn
7578
79+ FROM alpine:3.20@sha256:de4fe7064d8f98419ea6b49190df1abbf43450c1702eeb864fe9ced453c1cc5f
7680
77- COPY docker/mountFolder/main.dml /input/main.dml
81+ RUN apk add --no-cache bash \
82+ snappy \
83+ lz4 \
84+ zlib
85+
86+ ENV JAVA_HOME=/usr/lib/jvm/jdk-17.0.15+6
87+ ENV PATH=$JAVA_HOME/bin:$PATH
88+ ENV SYSTEMDS_ROOT=/systemds
89+ ENV PATH=$SYSTEMDS_ROOT/bin:$PATH
90+ ENV SYSDS_QUIET=1
91+
92+ ENV HADOOP_VERSION=3.3.6
93+ ENV HADOOP_HOME=/opt/hadoop
94+ ENV LD_LIBRARY_PATH=/opt/hadoop/lib/native
95+ ENV HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
96+ ENV GLIBC_VERSION=2.35-r1
97+
98+ RUN wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \
99+ && wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk \
100+ && apk add glibc-${GLIBC_VERSION}.apk \
101+ && rm glibc-${GLIBC_VERSION}.apk
102+
103+ RUN mkdir -p /usr/lib/jvm \
104+ && wget -qO- \
105+ https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.15%2B6/OpenJDK17U-jre_x64_alpine-linux_hotspot_17.0.15_6.tar.gz | tar xzf - \
106+ && mv jdk-17.0.15+6-jre $JAVA_HOME
107+
108+ RUN mkdir -p $HADOOP_HOME/lib/native \
109+ && wget -q https://downloads.apache.org/hadoop/common/hadoop-${HADOOP_VERSION}/hadoop-${HADOOP_VERSION}.tar.gz && \
110+ tar --strip-components=2 -xzf hadoop-${HADOOP_VERSION}.tar.gz \
111+ hadoop-${HADOOP_VERSION}/lib/native && \
112+ mv native/libhadoop.so.1.0.0 /opt/hadoop/lib/native && \
113+ mv native/libhadoop.so /opt/hadoop/lib/native && \
114+ rm hadoop-${HADOOP_VERSION}.tar.gz && \
115+ rm -rf native
116+
117+ COPY --from=compile-image /usr/src/systemds /systemds
118+ COPY --from=compile-image /input/main.dml /input/main.dml
119+
120+ WORKDIR /input
121+
122+ RUN addgroup -S default && adduser -S systemds -G default
123+ USER systemds
78124
79- CMD ["systemds" , "/input/main.dml" ]
125+ ENTRYPOINT ["systemds" ]
126+ CMD ["main.dml" ]
0 commit comments