This commit is contained in:
team3
2026-07-10 16:54:39 +02:00
parent dc6f165350
commit 58bb600ba3
2 changed files with 17 additions and 1 deletions

View File

@@ -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 --from=frontend /build/dist /app/frontend/dist
COPY --chown=app:app dev-ops/opencode.json /home/app/.config/opencode/opencode.json 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 USER app
# Embedding-Modell ins Image backen — sonst lädt jeder Container-Neustart # 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; \ RUN python3 -c "from sentence_transformers import SentenceTransformer; \
SentenceTransformer('sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2')" 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 WORKDIR /app/backend
ENTRYPOINT ["/entrypoint.sh"]
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

9
dev-ops/entrypoint.sh Normal file
View File

@@ -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 "$@"