FROM python:3.11-slim

# 系统依赖：libgl/opencv（PyMuPDF 自带 PDF 渲染，无需 poppler）
RUN apt-get update && apt-get install -y --no-install-recommends \
        libgl1 \
        libglib2.0-0 \
        libsm6 \
        libxext6 \
        libxrender1 \
        curl \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

# 先装依赖（缓存层）
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt \
    && pip install --no-cache-dir paddlepaddle==3.0.0 paddleocr==3.0.1

# 再拷代码
COPY . .

# 模型预热（首次构建会下载模型到 /root/.paddleocr）
RUN python -c "from app.core import warmup; warmup()" || true

EXPOSE 8801

ENV PYTHONUNBUFFERED=1

CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8801", "--workers", "1"]
