diff --git a/Dockerfile b/Dockerfile index 072a83a2..d8c46037 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,9 +7,14 @@ ARG TARGETOS ARG TARGETARCH ARG TARGETVARIANT +# The following three arg/env vars get used by the platform specific "install-packages" script +ARG EXTRA_DEB_PACKAGES="" +ARG EXTRA_DNF_PACKAGES="" +ARG EXTRA_ALPINE_PACKAGES="" ARG FORCE_INSTALL_PACKAGES=1 RUN --mount=target=/build,source=build \ - TARGET=${TARGETARCH}${TARGETVARIANT} /build/run.sh install-packages + TARGET=${TARGETARCH}${TARGETVARIANT} \ + /build/run.sh install-packages RUN --mount=target=/build,source=build \ /build/run.sh setup-user diff --git a/build/alpine/install-packages.sh b/build/alpine/install-packages.sh index d045b302..c4509adc 100755 --- a/build/alpine/install-packages.sh +++ b/build/alpine/install-packages.sh @@ -4,6 +4,7 @@ set -e set -o pipefail # Install necessary packages +# shellcheck disable=SC2086 apk add --no-cache -U \ openssl \ imagemagick \ @@ -29,7 +30,8 @@ apk add --no-cache -U \ nfs-utils \ libpcap \ libwebp \ - libcap + libcap \ + ${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 diff --git a/build/ol/install-packages.sh b/build/ol/install-packages.sh index d7dca7f1..96c09da2 100755 --- a/build/ol/install-packages.sh +++ b/build/ol/install-packages.sh @@ -23,6 +23,7 @@ EOF dnf update -y # Install necessary packages +# shellcheck disable=SC2086 dnf install -y \ ImageMagick \ file \ @@ -44,7 +45,8 @@ dnf install -y \ libpcap \ libwebp \ findutils \ - which + which \ + ${EXTRA_DNF_PACKAGES} # Install Git LFS curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash diff --git a/build/ubuntu/install-packages.sh b/build/ubuntu/install-packages.sh index 8b8421f4..5ff34d26 100755 --- a/build/ubuntu/install-packages.sh +++ b/build/ubuntu/install-packages.sh @@ -6,6 +6,7 @@ set -euo pipefail # Update and install packages apt-get update +# shellcheck disable=SC2086 DEBIAN_FRONTEND=noninteractive \ apt-get install -y \ imagemagick \ @@ -26,7 +27,8 @@ apt-get install -y \ zstd \ lbzip2 \ nfs-common \ - libpcap0.8 + libpcap0.8 \ + ${EXTRA_DEB_PACKAGES} # Install Git LFS curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash diff --git a/docs/misc/contributing/building.md b/docs/misc/contributing/building.md index c1cfbb5a..dfb13fac 100644 --- a/docs/misc/contributing/building.md +++ b/docs/misc/contributing/building.md @@ -26,3 +26,11 @@ or just a plain build ```shell docker build -t IMG_PREFIX/minecraft-server . ``` + +## Installing extra packages + +The following build args can be set to install additional packages for the respective base image distro: + +- `EXTRA_DEB_PACKAGES` +- `EXTRA_DNF_PACKAGES` +- `EXTRA_ALPINE_PACKAGES`