From 537a3e43fea2e7986e4b3afd96d881587ae6b93c Mon Sep 17 00:00:00 2001 From: Geoff Bourne Date: Fri, 17 Jul 2026 07:54:30 -0500 Subject: [PATCH] Use gcompat to ensure mc-image-helper runs on aarch64+alpine (#4176) --- .github/workflows/build.yml | 16 ++-------------- Dockerfile | 2 +- build/alpine/install-packages.sh | 1 + scripts/start-configuration | 4 ++++ 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e26406d5..a16732be 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,12 +45,12 @@ jobs: baseImage: eclipse-temurin:25-jre-noble platforms: linux/amd64,linux/arm64,linux/riscv64 mcVersion: latest + # forked build that include riscv64 + knockdRepoOrg: Opvolger/knock - variant: java25-alpine baseImage: eclipse-temurin:25-jre-alpine platforms: linux/amd64,linux/arm64 mcVersion: latest - # For GLIBC_2.34 support (and Alpine) - knockdRepoOrg: Metalcape/knock - variant: java25-jdk baseImage: eclipse-temurin:25 platforms: linux/amd64,linux/arm64 @@ -68,23 +68,17 @@ jobs: baseImage: eclipse-temurin:21-jre-alpine platforms: linux/amd64,linux/arm64 mcVersion: 1.21.11 - # For GLIBC_2.34 support (and Alpine) - knockdRepoOrg: Metalcape/knock # JAVA 17: - variant: java17 # jammy doesn't work until minecraft updates to https://github.com/netty/netty/issues/12343 baseImage: eclipse-temurin:17-jre-focal platforms: linux/amd64,linux/arm/v7,linux/arm64 mcVersion: 1.20.4 - # For GLIBC_2.34 support (and Alpine) - knockdRepoOrg: Metalcape/knock # JAVA 16 - variant: java16 baseImage: adoptopenjdk:16-jre-hotspot platforms: linux/amd64,linux/arm/v7,linux/arm64 mcVersion: 1.16.5 - # For GLIBC_2.34 support - knockdRepoOrg: Metalcape/knock # Pin version for pre-Java 17 mcHelperVersion: 1.51.3-java8 # JAVA 11 @@ -92,8 +86,6 @@ jobs: baseImage: adoptopenjdk:11-jre-hotspot platforms: linux/amd64,linux/arm/v7,linux/arm64 mcVersion: 1.16.4 - # For GLIBC_2.34 support - knockdRepoOrg: Metalcape/knock # Pin version for pre-Java 17 mcHelperVersion: 1.51.3-java8 # JAVA 8: NOTE: Unable to go past 8u312 because of Forge dependencies @@ -101,16 +93,12 @@ jobs: baseImage: eclipse-temurin:8u312-b07-jre-focal platforms: linux/amd64,linux/arm/v7,linux/arm64 mcVersion: 1.12.2 - # For GLIBC_2.34 support - knockdRepoOrg: Metalcape/knock # Pin version for Java 8, also be sure to set in verify-pr.yml mcHelperVersion: 1.51.3-java8 - variant: java8-jdk baseImage: eclipse-temurin:8u312-b07-jdk-focal platforms: linux/amd64,linux/arm64 mcVersion: 1.12.2 - # For GLIBC_2.34 support - knockdRepoOrg: Metalcape/knock # Pin version for Java 8, also be sure to set in verify-pr.yml mcHelperVersion: 1.51.3-java8 env: diff --git a/Dockerfile b/Dockerfile index b71a524c..c8a140ac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ ARG EXTRA_DNF_PACKAGES="" ARG EXTRA_ALPINE_PACKAGES="" ARG FORCE_INSTALL_PACKAGES=1 ARG KNOCKD_VERSION=0.8.1 -ARG KNOCKD_REPO_ORG=Opvolger/knock +ARG KNOCKD_REPO_ORG=Metalcape/knock RUN --mount=target=/build,source=build \ TARGET=${TARGETARCH}${TARGETVARIANT} \ /build/run.sh install-packages diff --git a/build/alpine/install-packages.sh b/build/alpine/install-packages.sh index daf91da2..633bdc1c 100755 --- a/build/alpine/install-packages.sh +++ b/build/alpine/install-packages.sh @@ -35,6 +35,7 @@ apk add --no-cache -U \ libcap \ numactl \ jattach \ + gcompat \ ${EXTRA_ALPINE_PACKAGES} # Download and install patched knockd diff --git a/scripts/start-configuration b/scripts/start-configuration index cd798ee4..90b30d61 100755 --- a/scripts/start-configuration +++ b/scripts/start-configuration @@ -33,6 +33,10 @@ if (( $(mc-image-helper java-release) >= 17 )); then export MC_IMAGE_HELPER_OPTS fi +if [[ $(getDistro) == alpine ]]; then + export LD_PRELOAD=/lib/libgcompat.so.0 +fi + export HOME=/data log "Running as uid=$(id -u) gid=$(id -g) with /data as '$(ls -lnd /data)'"