CV_Exractor / Dockerfile
Marcin-XStudio's picture
ajdnfhjb
369dab9
Raw
History Blame
1.59 kB
FROM nvidia/cuda:12.0.0-cudnn8-devel-ubuntu22.04
# 1) Variables HF avant tout
ENV HF_HOME="/home/user/.cache/huggingface" \
HF_HUB_CACHE="/home/user/.cache/huggingface/hub" \
TRANSFORMERS_CACHE="/home/user/.cache/huggingface/transformers"
# 2) Créer l’utilisateur non-root
RUN useradd -m -u 1000 user
RUN apt-get update && \
apt-get install -y --no-install-recommends \
python3 python3-pip python3-dev && \
rm -rf /var/lib/apt/lists/*
# 3) Installer dépendances système
RUN apt-get update && apt-get install -y \
build-essential git libpoppler-cpp-dev poppler-utils libmagic-dev python3-dev \
&& rm -rf /var/lib/apt/lists/*
# 4) Copier requirements et installer libs Python
WORKDIR /home/user/app
COPY --chown=user requirements.txt .
RUN pip install --no-cache-dir torch torchvision --extra-index-url https://download.pytorch.org/whl/cu118
RUN pip install --no-cache-dir huggingface_hub
RUN pip install --no-cache-dir -r requirements.txt
# 5) Pré-créer model_cache et HF_HOME, puis chown
RUN mkdir -p /home/user/app/model_cache $HF_HUB_CACHE \
&& chown -R user:user /home/user/app /home/user/.cache/huggingface
# 6) Télécharger le modèle au build-time sous l’utilisateur non-root
USER user
RUN python3 - <<EOF
import os
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="numind/NuExtract-1.5-tiny",
local_dir="/home/user/app/model_cache",
cache_dir=os.getenv("HF_HUB_CACHE")
)
EOF
# 7) Copier le reste du code et démarrer
COPY --chown=user . .
CMD ["uvicorn","app:app","--host","0.0.0.0","--port","7860"]