Files
MEK-Charge-Reconciliation/Dockerfile
T
VasanthandClaude Opus 5.5 6616c91b7f Branding, Excel watermark, live run progress, and uv
- Login and Reports pages: eCare logo, Waystar and Aquilaehr logos (light
  versions for the dark pages), eCare favicon.
- Excel reports: faded eCare/Waystar/Aquila watermark as the sheet
  background on both sheets. Report writer moves to xlsxwriter, the only
  engine that can set a sheet background.
- Reports page: animated run progress (both download lanes piped into the
  Excel sheet) and a plain-language activity feed built from the run log;
  the raw log stays under "Technical log". /status now returns the
  location count.
- Dependencies move from requirements.txt to pyproject.toml + uv.lock;
  Dockerfile installs uv from PyPI and runs uv sync --frozen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 14:43:31 +05:30

23 lines
994 B
Docker

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