From 544399b82b7dbdd6ebc4797d2696af8d719e9bd4 Mon Sep 17 00:00:00 2001 From: Janpeter Visser <30029041+madhura68@users.noreply.github.com> Date: Sun, 3 May 2026 20:28:16 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20cross-host=20compat=20=E2=80=94=20idempo?= =?UTF-8?q?tent=20groupadd,=20quoted=20env=20value,=20ignore=20tarballs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drie kleine fixes zodat de container ook op niet-NAS hosts (Mac M2, Windows i7) zonder gedoe gebouwd kan worden. - Dockerfile: vervang `groupadd -g ${AGENT_GID}` door een idempotent blok dat een bestaande UID/GID hernoemt. Op macOS conflicteert GID 20 (staff) met dialout in Ubuntu base — `groupadd: GID '20' already exists`. - .env.example: quote `GIT_AUTHOR_NAME` waarde. QNAP Container Station's env-parser is strict en weigert `KEY=value with space` zonder quotes. - .gitignore: voeg `*.tar`/`*.tar.gz` toe — de output van `docker save` die voor NAS-import naar de share wordt gekopieerd hoort niet in git. Co-Authored-By: Claude Opus 4.7 (1M context) --- .env.example | 2 +- .gitignore | 4 ++++ Dockerfile | 19 ++++++++++++++----- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/.env.example b/.env.example index 1cc4a76..3f3a523 100644 --- a/.env.example +++ b/.env.example @@ -54,7 +54,7 @@ GH_PRECLONE_REPOS=madhura68/Scrum4Me,madhura68/scrum4me-mcp # # Voorbeeld voor madhura68: # GIT_AUTHOR_EMAIL=12345678+madhura68@users.noreply.github.com -GIT_AUTHOR_NAME=Scrum4Me Agent +GIT_AUTHOR_NAME="Scrum4Me Agent" GIT_AUTHOR_EMAIL=vervang-mij@users.noreply.github.com # ----- Scrum4Me database ------------------------------------ diff --git a/.gitignore b/.gitignore index 3b6468a..3f91b6f 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,7 @@ Thumbs.db # Node (mocht je lokaal iets uitproberen) node_modules/ + +# Build artefacts (local docker save tarballs) +*.tar +*.tar.gz diff --git a/Dockerfile b/Dockerfile index 44e171b..e01b8fe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -67,11 +67,20 @@ RUN git clone --branch ${MCP_GIT_REF} --depth 1 \ # admin op QNAP. Pas aan via build-arg als je een andere UID gebruikt. ARG AGENT_UID=1000 ARG AGENT_GID=1000 -RUN groupadd -g ${AGENT_GID} agent \ - && useradd -u ${AGENT_UID} -g ${AGENT_GID} -m -s /bin/bash agent \ - && mkdir -p /var/cache/repos /var/cache/npm /var/log/agent /var/run/agent \ - && mkdir -p /home/agent/Projects /home/agent/.scrum4me-agent-worktrees \ - && chown -R agent:agent /var/cache /var/log/agent /var/run/agent /home/agent +RUN set -eux; \ + if getent group "${AGENT_GID}" >/dev/null; then \ + groupmod -n agent "$(getent group "${AGENT_GID}" | cut -d: -f1)"; \ + else \ + groupadd -g "${AGENT_GID}" agent; \ + fi; \ + if id -u "${AGENT_UID}" >/dev/null 2>&1; then \ + usermod -l agent -d /home/agent -m -g "${AGENT_GID}" -s /bin/bash "$(id -nu "${AGENT_UID}")"; \ + else \ + useradd -u "${AGENT_UID}" -g "${AGENT_GID}" -m -s /bin/bash agent; \ + fi; \ + mkdir -p /var/cache/repos /var/cache/npm /var/log/agent /var/run/agent; \ + mkdir -p /home/agent/Projects /home/agent/.scrum4me-agent-worktrees; \ + chown -R agent:agent /var/cache /var/log/agent /var/run/agent /home/agent # ----- runner files ------------------------------------------------------ WORKDIR /opt/agent