35 lines
909 B
Docker
35 lines
909 B
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)
|
|
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "--workers", "2", "--timeout", "120", "wsgi:app"]
|