# python slim + Debian chromium: pulls of the mcr.microsoft.com Playwright image get reset on our
# Dokploy server (same fix as Capitation Amount Updater)
FROM python:3.12-slim

RUN apt-get update \
 && apt-get install -y --no-install-recommends chromium fonts-liberation tzdata \
 && rm -rf /var/lib/apt/lists/*

WORKDIR /app
# uv from PyPI rather than its ghcr.io image, for the same registry-reset reason as above
RUN pip install --no-cache-dir uv==0.11.28
ENV UV_PYTHON_DOWNLOADS=never UV_NO_CACHE=1 PATH="/app/.venv/bin:$PATH"
COPY pyproject.toml uv.lock ./
RUN uv sync --frozen
COPY . .

# headless, system Chromium (Playwright's own browser download is not used)
# TZ: IST like the team's PCs (also what the browser uses, see BROWSER_TZ in mek_recon.py)
ENV HEADLESS=1 CHROME_PATH=/usr/bin/chromium PYTHONUNBUFFERED=1 TZ=Asia/Kolkata
EXPOSE 8000
# one worker: run state is kept in memory
CMD ["gunicorn", "-w", "1", "--threads", "8", "-b", "0.0.0.0:8000", "--timeout", "120", "app:app"]
