| 12345678910111213141516171819202122232425262728 |
- # ── Build stage ────────────────────────────────────────────────────────────────
- FROM python:3.11-slim AS base
- # System deps for PyMuPDF
- RUN apt-get update && apt-get install -y --no-install-recommends \
- libmupdf-dev \
- && rm -rf /var/lib/apt/lists/*
- WORKDIR /app
- # Install Python deps first (layer cache)
- COPY requirements.txt .
- RUN pip install --no-cache-dir -r requirements.txt
- # Copy package
- COPY book_ingestor/ ./book_ingestor/
- # ── Runtime ─────────────────────────────────────────────────────────────────────
- # books/ is mounted at runtime — not baked in
- RUN mkdir -p books/inbox books/processing books/done books/manifests
- # Non-root user for safety
- RUN useradd -m -u 1000 ingestor && chown -R ingestor:ingestor /app
- USER ingestor
- ENV PYTHONUNBUFFERED=1
- CMD ["python", "-m", "book_ingestor.watchdog_runner"]
|