From c6c527c011a85734fffd22f8fcd5b0582153604b Mon Sep 17 00:00:00 2001 From: KI-Sparringpartner Date: Mon, 3 Aug 2026 16:30:18 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=90=20SECURITY=20FIX:=20Container=20la?= =?UTF-8?q?euft=20jetzt=20als=20Non-Root=20(appuser)=20statt=20root!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index ae82474..1e821c4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,23 @@ -# Build stage (optional hier für jetzt reicht) +# Build stage FROM python:3.12-slim WORKDIR /app # Git und System-Tools installieren (ESSENTIUELL!) -RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/* +RUN apt-get update && \ + apt-get install -y git && \ + rm -rf /var/lib/apt/lists/* && \ + adduser --disabled-password --gecos "" appuser #✅ NEU: Nutzer erstellen! -# Abhängigkeiten installieren -COPY requirements.txt . +# Abhängigkeiten installieren als app-user +RUN chown -R appuser:appuser /app + +USER appuser #✅ WICHTIG: Jetzt laeuft der Container als 'appuser'! + +COPY --chown=appuser:appuser requirements.txt . RUN pip install --no-cache-dir -r requirements.txt -# Applikation kopieren -COPY app/ ./app +COPY --chown=appuser:appuser app/ ./app # Setze PYTHONPATH damit Imports funktionieren ENV PYTHONPATH=/app @@ -19,5 +25,5 @@ ENV PYTHONPATH=/app # Exponierter Port EXPOSE 8000 -# Starte den Server +# Starte den Server als Nicht-Root! CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file