# Kleines Image als Basis FROM python:3.9-slim # Verhindert Python-Buffering (Logs erscheinen sofort) ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PORT=7860 # System-Abhängigkeiten RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ && rm -rf /var/lib/apt/lists/* # Arbeitsverzeichnis WORKDIR /app # User anlegen (Hugging Face Default: User 1000) RUN useradd -m -u 1000 user # Requirements kopieren und installieren COPY --chown=user:user requirements.txt . RUN pip install --no-cache-dir --upgrade -r requirements.txt # Den restlichen Code kopieren und Besitzer anpassen COPY --chown=user:user . . # Zum User wechseln USER user ENV PATH="/home/user/.local/bin:$PATH" # Port freigeben EXPOSE 7860 # Startbefehl via Gunicorn (mit Uvicorn-Workern) # Das ist der Gold-Standard für FastAPI Deployments CMD ["gunicorn", "-w", "4", "-k", "uvicorn.workers.UvicornWorker", "main:app", "--bind", "0.0.0.0:7860", "--timeout", "120"]