openrag/Dockerfile.backend
2025-09-08 14:43:11 -04:00

50 lines
1.3 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

FROM python:3.13-slim
# Install curl for uv installation and openssl for RSA key generation
# Also install git for potential dependencies and build-essential for native compilations
RUN apt-get update && apt-get install -y \
curl \
openssl \
git \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Install uv
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
ENV PATH="/root/.local/bin:$PATH"
# Set working directory
WORKDIR /app
# Copy Python dependencies
COPY pyproject.toml uv.lock ./
RUN uv sync
# Copy sample document and warmup script for docling
COPY documents/warmup_ocr.pdf ./
COPY warm_up_docling.py ./
RUN uv run docling-tools models download
RUN uv run python - <<'PY'
import pathlib, easyocr
cache = pathlib.Path("/root/.EasyOCR/model")
cache.mkdir(parents=True, exist_ok=True)
# Prewarm the detector + recog for Doclings default langs
easyocr.Reader(['fr','de','es','en'],
download_enabled=True,
model_storage_directory=str(cache))
print("EasyOCR cache ready at", cache)
PY
# RUN uv run python warm_up_docling.py && rm warm_up_docling.py warmup_ocr.pdf
#ENV EASYOCR_MODULE_PATH=~/.cache/docling/models/EasyOcr/
# Copy Python source
COPY src/ ./src/
# Expose backend port
EXPOSE 8000
# Start backend in foreground
CMD ["uv", "run", "python", "src/main.py"]