FROM python:3.12-slim ENV DEBIAN_FRONTEND=noninteractive \ PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PORT=5001 \ HOST=0.0.0.0 \ LOG_LEVEL=INFO \ TRUST_PROXY=1 RUN apt-get update && apt-get install -y --no-install-recommends \ libcairo2 \ libpango-1.0-0 \ libpangocairo-1.0-0 \ libgdk-pixbuf-2.0-0 \ shared-mime-info \ fonts-noto \ fonts-noto-color-emoji \ && rm -rf /var/lib/apt/lists/* WORKDIR /app RUN addgroup --system app && adduser --system --ingroup app app COPY requirements.txt . RUN pip install --no-cache-dir --disable-pip-version-check -r requirements.txt COPY src/ . RUN mkdir -p generated uploads RUN chown -R app:app /app USER app EXPOSE 5001 CMD ["gunicorn", "--bind", "0.0.0.0:5001", "--worker-class", "gthread", "--workers", "1", "--threads", "2", "--timeout", "240", "--graceful-timeout", "30", "--keep-alive", "5", "--max-requests", "300", "--max-requests-jitter", "50", "--access-logfile", "-", "--error-logfile", "-", "app:app"]