Skip to content

Commit 641f198

Browse files
authored
Use GLIBC 2.34 compatible knockd for Java 17 images and older (#4158)
1 parent de75f2e commit 641f198

5 files changed

Lines changed: 28 additions & 2 deletions

File tree

.github/workflows/build.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ jobs:
4949
baseImage: eclipse-temurin:25-jre-alpine
5050
platforms: linux/amd64,linux/arm64
5151
mcVersion: latest
52+
# For GLIBC_2.34 support (and Alpine)
53+
knockdRepoOrg: Metalcape/knock
5254
- variant: java25-jdk
5355
baseImage: eclipse-temurin:25
5456
platforms: linux/amd64,linux/arm64
@@ -66,37 +68,49 @@ jobs:
6668
baseImage: eclipse-temurin:21-jre-alpine
6769
platforms: linux/amd64,linux/arm64
6870
mcVersion: 1.21.11
71+
# For GLIBC_2.34 support (and Alpine)
72+
knockdRepoOrg: Metalcape/knock
6973
# JAVA 17:
7074
- variant: java17
7175
# jammy doesn't work until minecraft updates to https://github.com/netty/netty/issues/12343
7276
baseImage: eclipse-temurin:17-jre-focal
7377
platforms: linux/amd64,linux/arm/v7,linux/arm64
7478
mcVersion: 1.20.4
79+
# For GLIBC_2.34 support (and Alpine)
80+
knockdRepoOrg: Metalcape/knock
7581
# JAVA 16
7682
- variant: java16
7783
baseImage: adoptopenjdk:16-jre-hotspot
7884
platforms: linux/amd64,linux/arm/v7,linux/arm64
7985
mcVersion: 1.16.5
86+
# For GLIBC_2.34 support
87+
knockdRepoOrg: Metalcape/knock
8088
# Pin version for pre-Java 17
8189
mcHelperVersion: 1.51.3-java8
8290
# JAVA 11
8391
- variant: java11
8492
baseImage: adoptopenjdk:11-jre-hotspot
8593
platforms: linux/amd64,linux/arm/v7,linux/arm64
8694
mcVersion: 1.16.4
95+
# For GLIBC_2.34 support
96+
knockdRepoOrg: Metalcape/knock
8797
# Pin version for pre-Java 17
8898
mcHelperVersion: 1.51.3-java8
8999
# JAVA 8: NOTE: Unable to go past 8u312 because of Forge dependencies
90100
- variant: java8
91101
baseImage: eclipse-temurin:8u312-b07-jre-focal
92102
platforms: linux/amd64,linux/arm/v7,linux/arm64
93103
mcVersion: 1.12.2
104+
# For GLIBC_2.34 support
105+
knockdRepoOrg: Metalcape/knock
94106
# Pin version for Java 8, also be sure to set in verify-pr.yml
95107
mcHelperVersion: 1.51.3-java8
96108
- variant: java8-jdk
97109
baseImage: eclipse-temurin:8u312-b07-jdk-focal
98110
platforms: linux/amd64,linux/arm64
99111
mcVersion: 1.12.2
112+
# For GLIBC_2.34 support
113+
knockdRepoOrg: Metalcape/knock
100114
# Pin version for Java 8, also be sure to set in verify-pr.yml
101115
mcHelperVersion: 1.51.3-java8
102116
env:
@@ -161,6 +175,7 @@ jobs:
161175
build-args: |
162176
BASE_IMAGE=${{ matrix.baseImage }}
163177
${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }}
178+
${{ matrix.knockdRepoOrg && format('KNOCKD_REPO_ORG={0}', matrix.knockdRepoOrg) }}
164179
cache-from: type=gha,scope=${{ matrix.variant }}
165180
# no cache-to to avoid cross-cache update from next build step
166181

@@ -217,5 +232,6 @@ jobs:
217232
VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}
218233
REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
219234
${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }}
235+
${{ matrix.knockdRepoOrg && format('KNOCKD_REPO_ORG={0}', matrix.knockdRepoOrg) }}
220236
cache-from: type=gha,scope=${{ matrix.variant }}
221237
cache-to: type=gha,mode=max,scope=${{ matrix.variant }}

.github/workflows/verify-pr.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,22 @@ jobs:
3737
baseImage: eclipse-temurin:25-jre-alpine
3838
platforms: linux/amd64,linux/arm64
3939
mcVersion: latest
40+
# For GLIBC_2.34 support (and Alpine)
41+
knockdRepoOrg: Metalcape/knock
4042
# JAVA 17:
4143
- variant: java17
4244
# jammy doesn't work until minecraft updates to https://github.com/netty/netty/issues/12343
4345
baseImage: eclipse-temurin:17-jre-focal
4446
platforms: linux/amd64
4547
mcVersion: 1.20.4
48+
# For GLIBC_2.34 support
49+
knockdRepoOrg: Metalcape/knock
4650
- variant: java8
4751
baseImage: eclipse-temurin:8u312-b07-jre-focal
4852
platforms: linux/amd64
4953
mcVersion: 1.12.2
54+
# For GLIBC_2.34 support
55+
knockdRepoOrg: Metalcape/knock
5056
# Pin version for Java 8, be sure to also set in build.yml
5157
mcHelperVersion: 1.51.3-java8
5258
env:
@@ -71,6 +77,7 @@ jobs:
7177
build-args: |
7278
BASE_IMAGE=${{ matrix.baseImage }}
7379
${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }}
80+
${{ matrix.knockdRepoOrg && format('KNOCKD_REPO_ORG={0}', matrix.knockdRepoOrg) }}
7481
cache-from: type=gha,scope=${{ matrix.variant }}
7582

7683
- name: Build for test
@@ -88,6 +95,7 @@ jobs:
8895
build-args: |
8996
BASE_IMAGE=${{ matrix.baseImage }}
9097
${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }}
98+
${{ matrix.knockdRepoOrg && format('KNOCKD_REPO_ORG={0}', matrix.knockdRepoOrg) }}
9199
cache-from: type=gha,scope=${{ matrix.variant }}
92100

93101
- name: Run tests

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ ARG EXTRA_DEB_PACKAGES=""
1212
ARG EXTRA_DNF_PACKAGES=""
1313
ARG EXTRA_ALPINE_PACKAGES=""
1414
ARG FORCE_INSTALL_PACKAGES=1
15+
ARG KNOCKD_VERSION=0.8.1
16+
ARG KNOCKD_REPO_ORG=Opvolger/knock
1517
RUN --mount=target=/build,source=build \
1618
TARGET=${TARGETARCH}${TARGETVARIANT} \
1719
/build/run.sh install-packages

build/alpine/install-packages.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ apk add --no-cache -U \
3838
${EXTRA_ALPINE_PACKAGES}
3939

4040
# Download and install patched knockd
41-
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
41+
curl -fsSL -o /tmp/knock.tar.gz "https://github.com/${KNOCKD_REPO_ORG}/releases/download/${KNOCKD_VERSION}/knock-${KNOCKD_VERSION}-alpine-amd64.tar.gz"
4242
tar -xf /tmp/knock.tar.gz -C /usr/local/ && rm /tmp/knock.tar.gz
4343
ln -s /usr/local/sbin/knockd /usr/sbin/knockd
4444
setcap cap_net_raw=ep /usr/local/sbin/knockd

build/ubuntu/install-packages.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ apt-get install -y \
3838
apt-get clean
3939

4040
# Download and install patched knockd
41-
curl -fsSL -o /tmp/knock.tar.gz https://github.com/Opvolger/knock/releases/download/0.8.1/knock-0.8.1-$TARGET.tar.gz
41+
curl -fsSL -o /tmp/knock.tar.gz "https://github.com/${KNOCKD_REPO_ORG}/releases/download/${KNOCKD_VERSION}/knock-${KNOCKD_VERSION}-$TARGET.tar.gz"
4242
tar -xf /tmp/knock.tar.gz -C /usr/local/ && rm /tmp/knock.tar.gz
4343
ln -s /usr/local/sbin/knockd /usr/sbin/knockd
4444
setcap cap_net_raw=ep /usr/local/sbin/knockd

0 commit comments

Comments
 (0)