From 79e953bbe7b8ce783ded41d20c16cb8e5f068498 Mon Sep 17 00:00:00 2001 From: HRiggs Date: Mon, 5 Oct 2026 16:06:24 -0400 Subject: [PATCH] fix: unix user perms --- Dockerfile | 6 ++---- deploy/README.md | 4 ++++ docker-entrypoint.sh | 9 ++++----- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4e8c8de..d3b1ec2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ ARG DEBIAN_FRONTEND=noninteractive RUN dpkg --add-architecture i386 \ && apt-get update \ && apt-get install -y --no-install-recommends \ - ca-certificates curl gosu lib32gcc-s1 python3 python3-pip python3-venv \ + ca-certificates curl lib32gcc-s1 python3 python3-pip python3-venv \ && rm -rf /var/lib/apt/lists/* \ && useradd --create-home --shell /bin/bash progression \ && mkdir -p /opt/steamcmd/steamapps /srv/progression/.data \ @@ -21,9 +21,7 @@ COPY --chown=progression:progression progression_backend ./progression_backend COPY --chown=progression:progression art ./art COPY --chmod=755 docker-entrypoint.sh /usr/local/bin/progression-entrypoint -ENV HOME=/home/progression \ - USER=progression \ - XDG_DATA_HOME=/home/progression/.local/share \ +ENV HOME=/root \ PROGRESSION_HOST=0.0.0.0 \ PROGRESSION_PORT=8000 \ PROGRESSION_DB_PATH=.data/progression.db \ diff --git a/deploy/README.md b/deploy/README.md index 124a37d..707fdf5 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -22,3 +22,7 @@ result, and completion percentage in Dockhand or with `docker compose logs -f`. Failed batches also include SteamCMD's output tail so network, subscription, and filesystem errors are visible directly in the container log. +The image does not switch Unix users at startup because some rootless and +capability-restricted container hosts block `setuid`. The process remains inside +the container's user namespace and writes directly to its named volumes. + diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index a4aea5c..56b22e4 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -3,17 +3,16 @@ set -eu prepare_volume() { path="$1" - marker="$path/.progression-volume-ready" + marker="$path/.progression-root-volume-ready" mkdir -p "$path" if [ ! -e "$marker" ]; then - echo "Preparing persistent volume permissions: $path" - chown -R progression:progression "$path" + echo "Preparing persistent volume for the container user: $path" + chown -R 0:0 "$path" touch "$marker" - chown progression:progression "$marker" fi } prepare_volume /srv/progression/.data prepare_volume /opt/steamcmd/steamapps -exec gosu progression "$@" +exec "$@"