58 lines
1.7 KiB
Plaintext
58 lines
1.7 KiB
Plaintext
# PaddleOCR-VL CPU Variant
|
|
# Vision-Language Model for document parsing using transformers (slower, no GPU required)
|
|
FROM python:3.11-slim-bookworm
|
|
|
|
LABEL maintainer="Task Venture Capital GmbH <hello@task.vc>"
|
|
LABEL description="PaddleOCR-VL 0.9B CPU - Vision-Language Model for document parsing"
|
|
LABEL org.opencontainers.image.source="https://code.foss.global/host.today/ht-docker-ai"
|
|
|
|
# Environment configuration
|
|
ENV PYTHONUNBUFFERED=1
|
|
ENV HF_HOME=/root/.cache/huggingface
|
|
ENV CUDA_VISIBLE_DEVICES=""
|
|
ENV SERVER_PORT=8000
|
|
ENV SERVER_HOST=0.0.0.0
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Install system dependencies
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
libgl1-mesa-glx \
|
|
libglib2.0-0 \
|
|
libgomp1 \
|
|
curl \
|
|
git \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Python dependencies
|
|
RUN pip install --no-cache-dir --upgrade pip && \
|
|
pip install --no-cache-dir \
|
|
torch==2.5.1 torchvision==0.20.1 --index-url https://download.pytorch.org/whl/cpu && \
|
|
pip install --no-cache-dir \
|
|
transformers \
|
|
accelerate \
|
|
safetensors \
|
|
pillow \
|
|
fastapi \
|
|
uvicorn[standard] \
|
|
python-multipart \
|
|
httpx \
|
|
protobuf \
|
|
sentencepiece \
|
|
einops
|
|
|
|
# Copy server files
|
|
COPY image_support_files/paddleocr_vl_server.py /app/paddleocr_vl_server.py
|
|
COPY image_support_files/paddleocr_vl_entrypoint.sh /usr/local/bin/paddleocr-vl-cpu-entrypoint.sh
|
|
RUN chmod +x /usr/local/bin/paddleocr-vl-cpu-entrypoint.sh
|
|
|
|
# Expose API port
|
|
EXPOSE 8000
|
|
|
|
# Health check (longer start-period for CPU + model download)
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=600s --retries=3 \
|
|
CMD curl -f http://localhost:8000/health || exit 1
|
|
|
|
ENTRYPOINT ["/usr/local/bin/paddleocr-vl-cpu-entrypoint.sh"]
|