update
This commit is contained in:
@@ -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
9
dev-ops/entrypoint.sh
Normal 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 "$@"
|
||||||
Reference in New Issue
Block a user