# 1. Basis-Image wählen
FROM python:3.13.7-slim

# 2. Metadaten (optional)
LABEL maintainer="MrUnknownDE"
LABEL description="Webapp zum Download von SoundCloud/YouTube/TikTok Tracks und Upload zu S3."

# 3. Umgebungsvariablen setzen
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
ENV FLASK_ENV=production
# ENV GUNICORN_CMD_ARGS="--timeout 120" # Beispiel für zusätzliche Gunicorn Args

# 4. Systemabhängigkeiten installieren (inkl. FFmpeg)
RUN apt-get update && \
    apt-get install -y --no-install-recommends ffmpeg ca-certificates && \
    rm -rf /var/lib/apt/lists/*

# 5. Arbeitsverzeichnis im Container erstellen und setzen
WORKDIR /app

# 6. Python-Abhängigkeiten installieren
COPY requirements.txt ./
RUN pip install --upgrade pip && \
    pip install --no-cache-dir -r requirements.txt

# 7. Anwendungs-Code in das Arbeitsverzeichnis kopieren
COPY . .

# 8. Port freigeben, auf dem die App lauschen wird
EXPOSE 5000

# 9. Befehl zum Starten der Anwendung mit Gunicorn
#    WICHTIG: --workers 1 ist entscheidend für diese Lösung!
#    --timeout erhöht, falls Downloads/Uploads lange dauern
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "1", "--timeout", "120", "app:app"]