diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..a7db75e
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,2 @@
+*
+!/piped.sh
diff --git a/.forgejo/workflows/build_and_release.yml b/.forgejo/workflows/build_and_release.yml
index 695cf86..66787f4 100644
--- a/.forgejo/workflows/build_and_release.yml
+++ b/.forgejo/workflows/build_and_release.yml
@@ -2,11 +2,10 @@ name: Docker Image CI
on:
push:
-
pull_request:
env:
- REGISTRY: git.dc09.ru # Change to your registry (e.g., forgejo.example.com)
+ REGISTRY: git.dc09.ru
GITHUB_TOKEN: ${{ secrets.FORGEJO_PASSWORD }}
GITHUB_API_URL: https://git.dc09.ru
GITHUB_BASE_REF: git.dc09.ru
@@ -24,7 +23,7 @@ jobs:
- dockerfile: 'Dockerfile.openj9'
image_name: 'openj9'
context: './'
- build-args: ["WITH_JDK=false"]
+ build-args: []
- dockerfile: 'Dockerfile.piped'
image_name: 'piped'
context: './'
@@ -60,7 +59,6 @@ jobs:
github-token: ${{ secrets.FORGEJO_PASSWORD }}
github-server: https://git.dc09.ru
-
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
@@ -69,4 +67,4 @@ jobs:
push: ${{ github.event_name == 'push' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- build-args: ${{ matrix.images.build-args }}
\ No newline at end of file
+ build-args: ${{ matrix.images.build-args }}
diff --git a/Dockerfile.openj9 b/Dockerfile.openj9
index 66ebf66..3070f9c 100644
--- a/Dockerfile.openj9
+++ b/Dockerfile.openj9
@@ -1,51 +1,45 @@
FROM ubuntu:25.04 AS build
-# partly copied from mkdocker.sh
+# 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 build-essential ca-certificates cmake cpio curl file gcc-14 g++-14 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 execstack unzip \
- && rm -rf /var/lib/apt/lists/*
+ENV DEBIAN_FRONTEND=noninteractive
+RUN apt-get -qq update \
+ && apt-get -qq upgrade -y \
+ && apt-get -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 unzip 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 wget --progress=dot:mega -O jtreg.zip https://builds.shipilev.net/jtreg/jtreg-7.5.1%2B1.zip \
- && unzip jtreg.zip -d /build \
- && rm -rf jtreg.zip
-
-ENV JT_HOME=/build/jtreg
-
-RUN find /build/bootjdk -name '*.so' | xargs execstack -c
RUN git clone --single-branch --depth 1 \
- https://github.com/ibmruntimes/openj9-openjdk-jdk21.git \
- /build/src
+ 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++
RUN bash configure \
- --enable-libffi-bundling --enable-ddr --enable-jitserver \
- --enable-fallback-linker --with-jtreg=/build/jtreg --with-boot-jdk=/build/bootjdk \
- --with-openssl=system --with-extra-ldflags="-Wl,-z,noexecstack"
-
+ --with-boot-jdk=/usr/lib/jvm/java-21-openjdk-amd64 \
+ --with-openssl=system \
+ --with-extra-cflags="-O3 -flto=auto -fuse-linker-plugin" \
+ --with-extra-cxxflags="-O3 -flto=auto -fuse-linker-plugin" \
+ --with-extra-ldflags="-Wl,-O1" \
+ --with-native-debug-symbols=none \
+ --enable-jvm-feature-link-time-opt
RUN make all JOBS=$(nproc)
-RUN make install
+
+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/
-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,\
+ --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,\
@@ -54,36 +48,7 @@ jdk.nio.mapmode,jdk.random,jdk.sctp,jdk.security.auth,jdk.security.jgss,jdk.unsu
jdk.xml.dom,jdk.zipfs,openj9.criu,openj9.cuda,openj9.dataaccess,openj9.gpu,openj9.jvm,\
openj9.sharedclasses,openj9.zosconditionhandling
-
-
-ENV JAVA_HOME=/build/src/build/linux-x86_64-server-release/images/jre
-ENV PATH="$JAVA_HOME/bin:$JAVA_HOME/lib:$PATH"
-ENV TEST_JDK_HOME=/build/src/build/linux-x86_64-server-release/images/jdk
-ENV TEST_ROOT=/build/src/openj9/test
-ENV DIAGNOSTICLEVEL=nodetails
-ENV NATIVE_TEST_LIBS=/build/src/build/linux-x86_64-server-release/images/test
-
-RUN cd /build/src/openj9/test \
- && git clone https://github.com/adoptium/TKG.git
-
-WORKDIR /build/src/openj9/test/TKG
-
-ENV BUILD_LIST=functional
-
-RUN find ../ -type f -name "playlist.xml" | xargs sed -i 's#jit_jar#jit_jarhttps://github.com/#g'
-RUN find ../ -type f -name "playlist.xml" | xargs sed -i 's#testJITServer#testJITServerhttps://github.com/#g'
-
-RUN make compile -j$(nproc)
-
-RUN make genParallelList PARALLEL_OPTIONS=TEST=_sanity.functional.regular TEST_TIME= NUM_MACHINES=$(nproc)
-
-RUN cat parallelList.mk
-
-RUN make -f parallelList.mk JOBS=$(nproc)
-
-WORKDIR /build/src/build/linux-x86_64-server-release/images
-RUN mv ./* /build/dist/
-
+RUN mkdir -p /build/dist && mv ./* /build/dist/
# ------