refactor: solidify startup UX and engine-aware preprocessing
- Slim core deps: move ML stack to optional extras (paddle/tables/figures/scientific/full) - Lazy settings proxy with config search paths (env var, cwd, user dir) - New commands: init, demo, setup [basic|full], first-run guard on run/watch - Engine-aware preprocessing: Paddle gets original image (fixes dark mode 0.83->0.95) - Results table shows Skipped count; lazy run-dir creation - kg_ocr marked experimental with extra, Docker defaults with OCR_PIPELINE_CONFIG - 25/25 tests, ruff clean
This commit is contained in:
21
Dockerfile
21
Dockerfile
@@ -2,25 +2,24 @@ FROM python:3.11-slim
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
tesseract-ocr \
|
||||
libtesseract-dev \
|
||||
poppler-utils \
|
||||
libgl1 \
|
||||
libglib2.0-0 \
|
||||
libsm6 \
|
||||
libxext6 \
|
||||
libxrender-dev \
|
||||
libgomp1 \
|
||||
&& 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
|
||||
RUN pip install --no-cache-dir uv && uv sync --frozen --no-dev --no-install-project
|
||||
|
||||
COPY src ./src
|
||||
COPY config.yaml ./
|
||||
# Optional ML stack: docker build --build-arg EXTRAS="--extra full" .
|
||||
ARG EXTRAS=""
|
||||
RUN uv sync --frozen --no-dev ${EXTRAS}
|
||||
|
||||
ENV PYTHONPATH=/app/src
|
||||
ENV OMP_NUM_THREADS=4
|
||||
COPY docker/config.docker.yaml ./config.docker.yaml
|
||||
|
||||
ENTRYPOINT ["ocr-pipeline"]
|
||||
ENV PATH="/app/.venv/bin:$PATH" \
|
||||
OCR_PIPELINE_CONFIG=/app/config.docker.yaml \
|
||||
OMP_NUM_THREADS=4
|
||||
|
||||
ENTRYPOINT ["ocr-pipeline"]
|
||||
|
||||
Reference in New Issue
Block a user