From 58bb600ba39d87846fc17943a4fc408b57f9c54f Mon Sep 17 00:00:00 2001 From: team3 Date: Fri, 10 Jul 2026 16:54:39 +0200 Subject: [PATCH] update --- Dockerfile | 9 ++++++++- dev-ops/entrypoint.sh | 9 +++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 dev-ops/entrypoint.sh diff --git a/Dockerfile b/Dockerfile index 68178b6..1d72f73 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,7 +35,7 @@ COPY --chown=app:app templates/ /app/templates/ COPY --chown=app:app --from=frontend /build/dist /app/frontend/dist COPY --chown=app:app dev-ops/opencode.json /home/app/.config/opencode/opencode.json -RUN mkdir -p /app/storage /app/topics && chown -R app:app /app +RUN mkdir -p /app/storage /app/topics /home/app/.claude && chown -R app:app /app USER app # Embedding-Modell ins Image backen — sonst lädt jeder Container-Neustart @@ -43,6 +43,13 @@ USER app RUN python3 -c "from sentence_transformers import SentenceTransformer; \ SentenceTransformer('sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2')" +# Start als root: das Entrypoint nimmt sich die gemounteten Datenverzeichnisse +# (Bind-Mounts tragen Host-Ownership!) und droppt dann auf den App-User. +USER root +COPY dev-ops/entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + WORKDIR /app/backend +ENTRYPOINT ["/entrypoint.sh"] CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] diff --git a/dev-ops/entrypoint.sh b/dev-ops/entrypoint.sh new file mode 100644 index 0000000..a71f849 --- /dev/null +++ b/dev-ops/entrypoint.sh @@ -0,0 +1,9 @@ +#!/bin/sh +# Selbstheilender Start (Muster der offiziellen Images, z. B. postgres): +# Bind-Mounts übernehmen die Host-Ownership — der Container richtet seine +# Datenverzeichnisse deshalb SELBST ein und droppt erst dann auf den App-User. +# Kein chown auf dem Host, kein Betriebs-Handgriff nötig. +set -e +chown -R app:app /app/storage /app/topics /home/app/.claude 2>/dev/null || true +export HOME=/home/app +exec setpriv --reuid app --regid app --init-groups "$@"