# Same runtime as API; runs health endpoint + Celery worker (see worker_health.py) FROM python:3.11-slim-bookworm ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PIP_NO_CACHE_DIR=1 \ PIP_ROOT_USER_ACTION=ignore \ NO_ALBUMENTATIONS_UPDATE=1 \ OMP_NUM_THREADS=1 \ MKL_NUM_THREADS=1 \ OPENBLAS_NUM_THREADS=1 WORKDIR /app ENV PYTHONPATH=/app RUN apt-get update && apt-get install -y --no-install-recommends \ ffmpeg \ pkg-config \ cmake \ libcairo2 \ libcairo2-dev \ libpango-1.0-0 \ libpango1.0-dev \ libpangocairo-1.0-0 \ libgdk-pixbuf-2.0-0 \ libffi-dev \ python3-dev \ texlive-latex-base \ texlive-fonts-recommended \ texlive-latex-extra \ build-essential \ && rm -rf /var/lib/apt/lists/* COPY requirements.worker-render.txt . RUN pip install --upgrade pip setuptools wheel \ && pip install -r requirements.worker-render.txt COPY . . RUN python scripts/prewarm_render_worker.py ENV PORT=7860 \ CELERY_WORKER_QUEUES=render EXPOSE 7860 ENTRYPOINT [] CMD ["sh", "-c", "exec python3 -u worker_health.py"]