32 lines
828 B
Docker
32 lines
828 B
Docker
# 1. Basis-Image
|
|
FROM python:3.12-slim
|
|
|
|
# 2. Setze den Arbeitsordner
|
|
WORKDIR /app
|
|
|
|
# 3. Environment Variables setzen (verhindert .pyc Dateien und Pufferung)
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
|
ENV PYTHONUNBUFFERED=1
|
|
|
|
# 4. Installiere uv
|
|
RUN pip install --no-cache-dir uv
|
|
|
|
# 5. Dependencies installieren
|
|
COPY pyproject.toml .
|
|
# --system flag installiert in das globale Python des Containers
|
|
RUN uv pip install --system .
|
|
|
|
# 6. Kopiere den Code
|
|
COPY . .
|
|
|
|
# 7. Erstelle einen Ordner für die persistente Datenbank
|
|
RUN mkdir -p /app/data
|
|
|
|
# 8. Expose Port
|
|
EXPOSE 80
|
|
|
|
# 9. Startbefehl
|
|
# Wir setzen den DB_PATH standardmäßig auf den data Ordner, falls er nicht überschrieben wird
|
|
ENV DB_PATH="/app/data/hangman.db"
|
|
|
|
CMD ["gunicorn", "main:app", "--bind", "0.0.0.0:80", "--workers", "4", "--worker-class", "uvicorn.workers.UvicornWorker"] |