Dockerfile
Rama main · réplica de lectura del repositorio original.
FROM python:3.13-slim
# System dependencies (curl=HTTP, jq=JSON, ffmpeg=video, poppler-utils=PDF)
RUN apt-get update && apt-get install -y --no-install-recommends \
curl jq ffmpeg poppler-utils \
&& rm -rf /var/lib/apt/lists/*
# Non-root user
RUN groupadd -r app && useradd -r -g app -d /app -s /sbin/nologin app
WORKDIR /app
# Python dependencies (cached unless requirements.txt changes)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Application code
COPY src/ src/
COPY config.yaml .
# Own everything by app user
RUN chown -R app:app /app
USER app
HEALTHCHECK --interval=60s --timeout=10s --start-period=30s --retries=3 \
CMD python3 -c "import sqlite3; sqlite3.connect('/app/data/checkpoints.db').execute('SELECT 1')" || exit 1
CMD ["python", "-m", "src.main"]