FROM python:3.11-slim RUN apt-get update && apt-get install -y --no-install-recommends \ tesseract-ocr \ libgl1 \ libglib2.0-0 \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY pyproject.toml uv.lock ./ RUN pip install --no-cache-dir uv && uv sync --frozen --no-dev --no-install-project COPY src ./src # Optional ML stack: docker build --build-arg EXTRAS="--extra full" . ARG EXTRAS="" RUN uv sync --frozen --no-dev ${EXTRAS} COPY docker/config.docker.yaml ./config.docker.yaml ENV PATH="/app/.venv/bin:$PATH" \ OCR_PIPELINE_CONFIG=/app/config.docker.yaml \ OMP_NUM_THREADS=4 ENTRYPOINT ["ocr-pipeline"]