# Dockerfile per Flask Proxy Server con Gunicorn e logging su stdout/stderr | |
# 1. Usa l'immagine base ufficiale di Python 3.12 slim | |
FROM python:3.12-slim | |
# 2. Installa git e certificati SSL (per clonare da GitHub e HTTPS) | |
RUN apt-get update && apt-get install -y \ | |
git \ | |
ca-certificates \ | |
curl \ | |
&& rm -rf /var/lib/apt/lists/* | |
# 3. Imposta la directory di lavoro | |
WORKDIR /app | |
# 5. Clona il repository (o copia il codice direttamente) nella working directory | |
# Se vuoi usare il tuo repository remoto, decommenta la riga git clone: | |
RUN git clone https://github.com/nzo66/tvproxy . | |
COPY . . | |
# 4. Pre-crea la directory per i log e rendila scrivibile | |
RUN mkdir -p logs \ | |
&& chmod 0777 logs | |
# 6. Aggiorna pip e installa le dipendenze senza cache | |
RUN pip install --upgrade pip | |
RUN pip install --no-cache-dir -r requirements.txt | |
# 7. Espone la porta 7860 per Flask/Gunicorn | |
EXPOSE 7860 | |
# 8. Comando ottimizzato per avviare Gunicorn: | |
# - 4 worker gevent | |
# - connessioni keep-alive | |
# - timeout adeguati | |
# - logging su stdout/stderr | |
CMD ["gunicorn", "app:app", \ | |
"-w", "80", \ | |
"--worker-class", "gevent", \ | |
"--worker-connections", "100", \ | |
"-b", "0.0.0.0:7860", \ | |
"--timeout", "120", \ | |
"--keep-alive", "5", \ | |
"--max-requests", "1000", \ | |
"--max-requests-jitter", "100", \ | |
"--access-logfile", "-", \ | |
"--error-logfile", "-"] |