Files
filmdle/Dockerfile
2026-08-07 21:07:22 +02:00

38 lines
1.1 KiB
Docker

# Basis-Image mit Python
FROM python:3.11-slim
# Arbeitsverzeichnis erstellen
WORKDIR /app
# Port für Gunicorn
EXPOSE 8000
# Kopiere die requirements-Datei und installiere die Abhängigkeiten
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Kopiere den gesamten Projektinhalt in das Arbeitsverzeichnis
COPY . .
# Umgebungsvariablen von Coolify / docker-compose übernehmen (zur Laufzeit)
ENV DB_HOST=$DB_HOST
ENV DB_PORT=$DB_PORT
ENV DB_USER=$DB_USER
ENV DB_PASSWORD=$DB_PASSWORD
ENV DB_DATABASE=$DB_DATABASE
ENV SECRET_KEY=$SECRET_KEY
ENV MAX_ATTEMPTS=$MAX_ATTEMPTS
ENV DAILY_RESET_UTC=$DAILY_RESET_UTC
# Nicht-root Benutzer aus Sicherheitsgründen
RUN useradd --create-home appuser && chown -R appuser:appuser /app
USER appuser
EXPOSE 8000
# Startbefehl (Production: Gunicorn)
# --preload: Die App (inkl. db.create_all() + Seed) wird einmal im Master geladen,
# bevor die Worker geforkt werden. Das verhindert den Startup-Race, bei dem mehrere
# Worker gleichzeitig dieselben Tabellen erstellen.
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "--workers", "2", "--timeout", "120", "--preload", "wsgi:app"]