diff --git a/Dockerfile b/Dockerfile index bb6b847b..dd8a8218 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,6 +15,7 @@ ARG FORCE_INSTALL_PACKAGES=1 RUN --mount=target=/build,source=build \ TARGET=${TARGETARCH}${TARGETVARIANT} \ /build/run.sh install-packages +COPY --from=tianon/gosu /gosu /usr/local/bin/ 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 c453e670..0b1a8860 100755 --- a/build/alpine/install-packages.sh +++ b/build/alpine/install-packages.sh @@ -10,7 +10,6 @@ apk add --no-cache -U \ imagemagick \ file \ lsof \ - su-exec \ coreutils \ findutils \ procps \ diff --git a/build/ol/install-gosu.sh b/build/ol/install-gosu.sh deleted file mode 100755 index f01aec3d..00000000 --- a/build/ol/install-gosu.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -GOSU_VERSION="1.16" -GOSU_BASE_URL="https://github.com/tianon/gosu/releases/download/$GOSU_VERSION" - -case $(uname -m) in - "aarch64") - GOSU_ARCH="gosu-arm64" - ;; - "x86_64") - GOSU_ARCH="gosu-amd64" - ;; - *) - echo "Architecture not supported!" - exit 1 - ;; -esac - -curl -sL -o /bin/gosu "${GOSU_BASE_URL}/${GOSU_ARCH}" -chmod +x /bin/gosu diff --git a/build/ol/install-packages.sh b/build/ol/install-packages.sh index 5d4ca416..5e0135ce 100755 --- a/build/ol/install-packages.sh +++ b/build/ol/install-packages.sh @@ -59,9 +59,6 @@ dnf install -y git-lfs # Clean up DNF when done dnf clean all -# Install gosu (assuming the script /build/ol/install-gosu.sh exists and is executable) -bash /build/ol/install-gosu.sh - # 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-$TARGET.tar.gz tar -xf /tmp/knock.tar.gz -C /usr/local/ && rm /tmp/knock.tar.gz diff --git a/build/ubuntu/install-packages.sh b/build/ubuntu/install-packages.sh index 5ff34d26..12c8bf25 100755 --- a/build/ubuntu/install-packages.sh +++ b/build/ubuntu/install-packages.sh @@ -11,7 +11,6 @@ DEBIAN_FRONTEND=noninteractive \ apt-get install -y \ imagemagick \ file \ - gosu \ sudo \ net-tools \ iputils-ping \ diff --git a/scripts/start b/scripts/start index 2c2cd33b..ab826b94 100755 --- a/scripts/start +++ b/scripts/start @@ -48,7 +48,7 @@ if ! isTrue "${SKIP_SUDO:-false}" && [ "$(id -u)" = 0 ]; then echo 'hosts: files dns' > /etc/nsswitch.conf fi - exec $(getSudoFromDistro) ${runAsUser}:${runAsGroup} "$(dirname "$0")/start-configuration" "$@" + exec gosu ${runAsUser}:${runAsGroup} "$(dirname "$0")/start-configuration" "$@" else exec "$(dirname "$0")/start-configuration" "$@" fi diff --git a/scripts/start-utils b/scripts/start-utils index 473faf57..3f0b374b 100755 --- a/scripts/start-utils +++ b/scripts/start-utils @@ -121,17 +121,6 @@ function log() { eval "$oldState" } -function getSudoFromDistro(){ - distro=$(getDistro) - command= - if [[ $distro == alpine ]]; then - command="su-exec" - else - command="gosu" - fi - echo $command -} - # Refer to https://unix.stackexchange.com/a/10065/102376 function isTerminal() { if test -t 1; then