61 lines
2.3 KiB
Text
61 lines
2.3 KiB
Text
FROM ubuntu:25.04 AS build
|
|
|
|
# partially copied from mkdocker.sh
|
|
# Copyright IBM Corp (Eclipse Public License 2.0)
|
|
RUN apt -qq update \
|
|
&& apt -qq upgrade -y \
|
|
&& apt -qq install -y --no-install-recommends \
|
|
ant ant-contrib autoconf ca-certificates cmake cpio file gcc g++ 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 openjdk-21-jdk-headless pkg-config python3 python3-dev rsync \
|
|
systemtap-sdt-dev xvfb zlib1g-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /build
|
|
|
|
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
|
|
|
|
ENV CC=/usr/bin/gcc CXX=/usr/bin/g++
|
|
# TODO: add as args to configure
|
|
# CFLAGS="-O3 -flto -fwhole-program-vtables" \
|
|
# LDFLAGS="-Wl,-O1"
|
|
RUN bash configure \
|
|
--with-boot-jdk=/usr/lib/jvm/java-21-openjdk-amd64 \
|
|
--with-openssl=system
|
|
RUN make all JOBS=$(nproc)
|
|
|
|
WORKDIR /build/src/build/linux-x86_64-server-release/images
|
|
|
|
# jlink by advice from https://adoptium.net/blog/2021/10/jlink-to-produce-own-runtime/
|
|
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:25.04 AS run
|
|
|
|
COPY --from=build /build/dist/jre /usr/lib/jvm/openj9-jre
|
|
ENV JAVA_HOME=/usr/lib/jvm/openj9-jre
|
|
ENV PATH="$JAVA_HOME/bin:$JAVA_HOME/lib:$PATH"
|
|
|
|
# verify installation
|
|
RUN java --version
|
|
|
|
# ------
|