diff --git a/Dockerfile b/Dockerfile index d1141cd7f7a..dc4e7c2f31b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,11 +3,17 @@ ARG BASE_IMAGE=eclipse-temurin:17-jre-focal FROM ${BASE_IMAGE} +# hook into docker BuildKit --platform support +# see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope +ARG TARGETOS +ARG TARGETARCH +ARG TARGETVARIANT + # CI system should set this to a hash or git revision of the build directory and it's contents to # ensure consistent cache updates. ARG BUILD_FILES_REV=1 RUN --mount=target=/build,source=build \ - REV=${BUILD_FILES_REV} /build/run.sh install-packages + REV=${BUILD_FILES_REV} TARGET=${TARGETARCH}${TARGETVARIANT} /build/run.sh install-packages RUN --mount=target=/build,source=build \ REV=${BUILD_FILES_REV} /build/run.sh setup-user @@ -16,12 +22,6 @@ COPY --chmod=644 files/sudoers* /etc/sudoers.d EXPOSE 25565 -# hook into docker BuildKit --platform support -# see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope -ARG TARGETOS -ARG TARGETARCH -ARG TARGETVARIANT - ARG EASY_ADD_VER=0.7.1 ADD https://github.com/itzg/easy-add/releases/download/${EASY_ADD_VER}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add RUN chmod +x /usr/bin/easy-add @@ -52,11 +52,6 @@ RUN curl -fsSL ${MC_HELPER_BASE_URL}/mc-image-helper-${MC_HELPER_VERSION}.tgz \ | tar -C /usr/share -zxf - \ && ln -s /usr/share/mc-image-helper-${MC_HELPER_VERSION}/bin/mc-image-helper /usr/bin -# Install modified knockd -ADD https://github.com/Metalcape/knock/releases/download/0.8.1/knock-0.8.1-${TARGETARCH}${TARGETVARIANT}.tar.gz /tmp/knock.tar.gz -RUN tar -xf /tmp/knock.tar.gz -C /usr/local/ && rm /tmp/knock.tar.gz -RUN find /usr/lib -name 'libpcap.so.0.8' -execdir cp '{}' libpcap.so.1 \; - VOLUME ["/data"] WORKDIR /data diff --git a/build/alpine/install-packages.sh b/build/alpine/install-packages.sh index 4c116915e29..ee80f1be95e 100755 --- a/build/alpine/install-packages.sh +++ b/build/alpine/install-packages.sh @@ -25,3 +25,8 @@ apk add --no-cache -U \ zstd \ nfs-utils \ libpcap + +# Patched knockd +curl -o /tmp/knock.tar.gz https://github.com/Metalcape/knock/releases/download/0.8.1/knock-0.8.1-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 diff --git a/build/ol/install-packages.sh b/build/ol/install-packages.sh index eab5e562262..3f43840e3e7 100755 --- a/build/ol/install-packages.sh +++ b/build/ol/install-packages.sh @@ -1,5 +1,7 @@ #!/bin/bash +export TARGET + set -e microdnf install dnf -y @@ -36,3 +38,8 @@ dnf install -y ImageMagick \ libpcap bash /build/ol/install-gosu.sh + +# Patched knockd +curl -o /tmp/knock.tar.gz https://github.com/Metalcape/knock/releases/download/0.8.1/knock-0.8.1-$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 diff --git a/build/ubuntu/install-packages.sh b/build/ubuntu/install-packages.sh index d7b882258e7..6f5e7dd0fc4 100755 --- a/build/ubuntu/install-packages.sh +++ b/build/ubuntu/install-packages.sh @@ -1,5 +1,7 @@ #!/bin/sh +export TARGET + set -e apt-get update @@ -27,3 +29,9 @@ apt-get install -y \ libpcap0.8 apt-get clean + +# Patched knockd +curl -o /tmp/knock.tar.gz https://github.com/Metalcape/knock/releases/download/0.8.1/knock-0.8.1-$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 +find /usr/lib -name 'libpcap.so.0.8' -execdir cp '{}' libpcap.so.1 \;