andrehoffmann80 commited on
Commit
ab063c7
·
verified ·
1 Parent(s): f09857a

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +16 -7
Dockerfile CHANGED
@@ -1,27 +1,36 @@
 
1
  FROM python:3.9-slim
2
 
3
- # System-Umgebungsvariablen
4
  ENV PYTHONUNBUFFERED=1 \
5
  PYTHONDONTWRITEBYTECODE=1 \
6
- PATH="/home/user/.local/bin:$PATH"
7
 
 
 
 
 
 
 
8
  WORKDIR /app
9
 
10
- # User anlegen
11
  RUN useradd -m -u 1000 user
12
 
13
  # Requirements kopieren und installieren
14
  COPY --chown=user:user requirements.txt .
15
  RUN pip install --no-cache-dir --upgrade -r requirements.txt
16
 
17
- # Restlichen Code kopieren (besonders main.py)
18
  COPY --chown=user:user . .
19
 
20
  # Zum User wechseln
21
  USER user
 
22
 
23
- # Port für HF
24
  EXPOSE 7860
25
 
26
- # Start-Befehl
27
- CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
 
 
1
+ # Kleines Image als Basis
2
  FROM python:3.9-slim
3
 
4
+ # Verhindert Python-Buffering (Logs erscheinen sofort)
5
  ENV PYTHONUNBUFFERED=1 \
6
  PYTHONDONTWRITEBYTECODE=1 \
7
+ PORT=7860
8
 
9
+ # System-Abhängigkeiten
10
+ RUN apt-get update && apt-get install -y --no-install-recommends \
11
+ build-essential \
12
+ && rm -rf /var/lib/apt/lists/*
13
+
14
+ # Arbeitsverzeichnis
15
  WORKDIR /app
16
 
17
+ # User anlegen (Hugging Face Default: User 1000)
18
  RUN useradd -m -u 1000 user
19
 
20
  # Requirements kopieren und installieren
21
  COPY --chown=user:user requirements.txt .
22
  RUN pip install --no-cache-dir --upgrade -r requirements.txt
23
 
24
+ # Den restlichen Code kopieren und Besitzer anpassen
25
  COPY --chown=user:user . .
26
 
27
  # Zum User wechseln
28
  USER user
29
+ ENV PATH="/home/user/.local/bin:$PATH"
30
 
31
+ # Port freigeben
32
  EXPOSE 7860
33
 
34
+ # Startbefehl via Gunicorn (mit Uvicorn-Workern)
35
+ # Das ist der Gold-Standard für FastAPI Deployments
36
+ CMD ["gunicorn", "-w", "4", "-k", "uvicorn.workers.UvicornWorker", "main:app", "--bind", "0.0.0.0:7860", "--timeout", "120"]