FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive PYTHONUNBUFFERED=1 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 OMP_THREAD_LIMIT=1 PLAYWRIGHT_BROWSERS_PATH=/opt/browsers
RUN apt-get update -qq && apt-get install -y --no-install-recommends python3-venv libreoffice-writer libreoffice-calc libreoffice-impress ghostscript qpdf poppler-utils tesseract-ocr tesseract-ocr-eng fonts-dejavu-core fonts-liberation fonts-crosextra-carlito fonts-crosextra-caladea ca-certificates && rm -rf /var/lib/apt/lists/*
COPY requirements.txt /processor/requirements.txt
RUN python3 -m venv /opt/venv && /opt/venv/bin/pip install --no-cache-dir -r /processor/requirements.txt pypdf==6.2.0 pypdfium2==5.0.0 oletools==0.60.2 && /opt/venv/bin/playwright install --with-deps chromium && rm -rf /var/lib/apt/lists/*
ENV PATH=/opt/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOME=/work/home TMPDIR=/work/tmp
COPY ocr-models.json install-ocr-models.py /processor/
RUN /opt/venv/bin/python /processor/install-ocr-models.py
COPY . /processor/
WORKDIR /work
ENTRYPOINT ["/opt/venv/bin/python", "/processor/entry.py"]
