fix: cross-host compat — idempotent groupadd, quoted env value, ignore tarballs

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) <noreply@anthropic.com>
This commit is contained in:
Janpeter Visser 2026-05-03 20:28:16 +02:00
parent c5bf226b3d
commit 544399b82b
3 changed files with 19 additions and 6 deletions

View file

@ -54,7 +54,7 @@ GH_PRECLONE_REPOS=madhura68/Scrum4Me,madhura68/scrum4me-mcp
# #
# Voorbeeld voor madhura68: # Voorbeeld voor madhura68:
# GIT_AUTHOR_EMAIL=12345678+madhura68@users.noreply.github.com # 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 GIT_AUTHOR_EMAIL=vervang-mij@users.noreply.github.com
# ----- Scrum4Me database ------------------------------------ # ----- Scrum4Me database ------------------------------------

4
.gitignore vendored
View file

@ -20,3 +20,7 @@ Thumbs.db
# Node (mocht je lokaal iets uitproberen) # Node (mocht je lokaal iets uitproberen)
node_modules/ node_modules/
# Build artefacts (local docker save tarballs)
*.tar
*.tar.gz

View file

@ -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. # admin op QNAP. Pas aan via build-arg als je een andere UID gebruikt.
ARG AGENT_UID=1000 ARG AGENT_UID=1000
ARG AGENT_GID=1000 ARG AGENT_GID=1000
RUN groupadd -g ${AGENT_GID} agent \ RUN set -eux; \
&& useradd -u ${AGENT_UID} -g ${AGENT_GID} -m -s /bin/bash agent \ if getent group "${AGENT_GID}" >/dev/null; then \
&& mkdir -p /var/cache/repos /var/cache/npm /var/log/agent /var/run/agent \ groupmod -n agent "$(getent group "${AGENT_GID}" | cut -d: -f1)"; \
&& mkdir -p /home/agent/Projects /home/agent/.scrum4me-agent-worktrees \ else \
&& chown -R agent:agent /var/cache /var/log/agent /var/run/agent /home/agent 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 ------------------------------------------------------ # ----- runner files ------------------------------------------------------
WORKDIR /opt/agent WORKDIR /opt/agent