diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f757fb7f..e26406d5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -49,6 +49,8 @@ jobs: 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 @@ -66,17 +68,23 @@ 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 @@ -84,6 +92,8 @@ 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 @@ -91,12 +101,16 @@ 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: @@ -161,6 +175,7 @@ jobs: build-args: | BASE_IMAGE=${{ matrix.baseImage }} ${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }} + ${{ matrix.knockdRepoOrg && format('KNOCKD_REPO_ORG={0}', matrix.knockdRepoOrg) }} cache-from: type=gha,scope=${{ matrix.variant }} # no cache-to to avoid cross-cache update from next build step @@ -217,5 +232,6 @@ jobs: VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }} REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} ${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }} + ${{ matrix.knockdRepoOrg && format('KNOCKD_REPO_ORG={0}', matrix.knockdRepoOrg) }} cache-from: type=gha,scope=${{ matrix.variant }} cache-to: type=gha,mode=max,scope=${{ matrix.variant }} diff --git a/.github/workflows/verify-pr.yml b/.github/workflows/verify-pr.yml index 581db1ba..0ff8ca2f 100644 --- a/.github/workflows/verify-pr.yml +++ b/.github/workflows/verify-pr.yml @@ -37,16 +37,22 @@ jobs: baseImage: eclipse-temurin:25-jre-alpine platforms: linux/amd64,linux/arm64 mcVersion: latest + # 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 mcVersion: 1.20.4 + # For GLIBC_2.34 support + knockdRepoOrg: Metalcape/knock - variant: java8 baseImage: eclipse-temurin:8u312-b07-jre-focal platforms: linux/amd64 mcVersion: 1.12.2 + # For GLIBC_2.34 support + knockdRepoOrg: Metalcape/knock # Pin version for Java 8, be sure to also set in build.yml mcHelperVersion: 1.51.3-java8 env: @@ -71,6 +77,7 @@ jobs: build-args: | BASE_IMAGE=${{ matrix.baseImage }} ${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }} + ${{ matrix.knockdRepoOrg && format('KNOCKD_REPO_ORG={0}', matrix.knockdRepoOrg) }} cache-from: type=gha,scope=${{ matrix.variant }} - name: Build for test @@ -88,6 +95,7 @@ jobs: build-args: | BASE_IMAGE=${{ matrix.baseImage }} ${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }} + ${{ matrix.knockdRepoOrg && format('KNOCKD_REPO_ORG={0}', matrix.knockdRepoOrg) }} cache-from: type=gha,scope=${{ matrix.variant }} - name: Run tests diff --git a/Dockerfile b/Dockerfile index b62826d5..c586b68b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,6 +12,8 @@ ARG EXTRA_DEB_PACKAGES="" 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 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 be266141..daf91da2 100755 --- a/build/alpine/install-packages.sh +++ b/build/alpine/install-packages.sh @@ -38,7 +38,7 @@ apk add --no-cache -U \ ${EXTRA_ALPINE_PACKAGES} # Download and install patched knockd -curl -fsSL -o /tmp/knock.tar.gz https://github.com/Metalcape/knock/releases/download/0.8.1/knock-0.8.1-alpine-amd64.tar.gz +curl -fsSL -o /tmp/knock.tar.gz "https://github.com/${KNOCKD_REPO_ORG}/releases/download/${KNOCKD_VERSION}/knock-${KNOCKD_VERSION}-alpine-amd64.tar.gz" tar -xf /tmp/knock.tar.gz -C /usr/local/ && rm /tmp/knock.tar.gz ln -s /usr/local/sbin/knockd /usr/sbin/knockd setcap cap_net_raw=ep /usr/local/sbin/knockd diff --git a/build/ubuntu/install-packages.sh b/build/ubuntu/install-packages.sh index 9b169870..2744f9ff 100755 --- a/build/ubuntu/install-packages.sh +++ b/build/ubuntu/install-packages.sh @@ -38,7 +38,7 @@ apt-get install -y \ apt-get clean # Download and install patched knockd -curl -fsSL -o /tmp/knock.tar.gz https://github.com/Opvolger/knock/releases/download/0.8.1/knock-0.8.1-$TARGET.tar.gz +curl -fsSL -o /tmp/knock.tar.gz "https://github.com/${KNOCKD_REPO_ORG}/releases/download/${KNOCKD_VERSION}/knock-${KNOCKD_VERSION}-$TARGET.tar.gz" tar -xf /tmp/knock.tar.gz -C /usr/local/ && rm /tmp/knock.tar.gz ln -s /usr/local/sbin/knockd /usr/sbin/knockd setcap cap_net_raw=ep /usr/local/sbin/knockd