FROM ubuntu:24.10 AS build # partly copied from mkdocker.sh # Copyright IBM Corp (Eclipse Public License 2.0) RUN apt update \ && apt upgrade -y \ && apt install -qq -y --no-install-recommends \ ant ant-contrib autoconf build-essential ca-certificates cmake cpio curl file g++-13 gcc-13 gdb git \ libasound2-dev libcups2-dev libdwarf-dev libelf-dev libexpat1-dev libffi-dev libfontconfig libfontconfig1-dev \ libfreetype6-dev libnuma-dev libssl-dev libx11-dev libxext-dev libxrandr-dev libxrender-dev libxt-dev libxtst-dev \ make nasm pkg-config python3 python3-dev rsync systemtap-sdt-dev unzip wget xvfb zip zlib1g-dev \ && rm -rf /var/lib/apt/lists/* WORKDIR /build RUN mkdir /build/bootjdk /build/dist \ && wget --progress=dot:mega -O jdk21.tar.gz \ https://api.adoptopenjdk.net/v3/binary/latest/21/ga/linux/x64/jdk/openj9/normal/adoptopenjdk \ && tar -xzf jdk21.tar.gz --directory=/build/bootjdk --strip-components=1 \ && rm -f jdk21.tar.gz RUN git clone --single-branch --depth 1 \ https://github.com/ibmruntimes/openj9-openjdk-jdk21.git \ /build/src WORKDIR /build/src RUN bash get_source.sh RUN bash configure --with-boot-jdk=/build/bootjdk --with-mixedrefs=static --with-openssl=system RUN make all # jlink by advice from https://adoptium.net/blog/2021/10/jlink-to-produce-own-runtime/ WORKDIR /build/src/build/linux-x86_64-server-release/images RUN jdk/bin/jlink --strip-debug --no-man-pages --no-header-files --compress=2 \ --output jre \ --add-modules java.base,java.compiler,java.datatransfer,java.desktop,java.instrument,java.logging,\ java.management,java.management.rmi,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.se,\ java.security.jgss,java.security.sasl,java.smartcardio,java.sql,java.sql.rowset,java.transaction.xa,\ java.xml,java.xml.crypto,jdk.accessibility,jdk.charsets,jdk.crypto.cryptoki,jdk.crypto.ec,jdk.dynalink,\ jdk.httpserver,jdk.incubator.vector,jdk.jsobject,jdk.localedata,jdk.naming.dns,jdk.naming.rmi,jdk.net,\ jdk.nio.mapmode,jdk.random,jdk.sctp,jdk.security.auth,jdk.security.jgss,jdk.unsupported,jdk.unsupported.desktop,\ jdk.xml.dom,jdk.zipfs,openj9.criu,openj9.cuda,openj9.dataaccess,openj9.gpu,openj9.jvm,\ openj9.sharedclasses,openj9.zosconditionhandling RUN mv ./* /build/dist/ # ------ FROM ubuntu:24.10 AS run COPY --from=build /build/dist/jre /usr/lib/jvm/openj9-jre RUN ln -s /usr/lib/jvm/openj9-jre/bin/java /usr/bin/java ENV JAVA_HOME=/usr/lib/jvm/openj9-jre # ------