Files
medien-dl/Dockerfile

38 lines
1.2 KiB
Docker

# 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"]