apiagrilens / Dockerfile
Sidoineko's picture
Docker: move HF caches to /home/user/.cache; set HF_HOME/HUGGINGFACE_HUB_CACHE/TRANSFORMERS_CACHE; ensure write permissions
ee5887a
FROM python:3.11-slim
WORKDIR /app
# Installation des dépendances système
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
git \
curl \
&& rm -rf /var/lib/apt/lists/*
# Copie des requirements d'abord pour le cache Docker
COPY requirements.txt /app/requirements.txt
# Installer PyTorch et torchvision AVANT le reste
RUN pip install --no-cache-dir --default-timeout=600 \
torch>=2.1.0 torchvision>=0.16.0 \
-f https://download.pytorch.org/whl/torch_stable.html
# Installer timm pour les modèles de vision
RUN pip install --no-cache-dir timm>=0.9.0
# Installer les dépendances pour les modèles de vision
RUN pip install --no-cache-dir pillow>=10.0.0
# Installer FastAPI et uvicorn
RUN pip install --no-cache-dir fastapi uvicorn[standard]
# Installer le reste des dépendances
RUN pip install --no-cache-dir --default-timeout=600 -r requirements.txt -i https://pypi.org/simple
# Copie du code source
COPY . /app/
# Créer les dossiers cache et donner les droits d'écriture
RUN mkdir -p /home/user/.cache/huggingface /home/user/.cache/transformers /tmp/model_offload /tmp/model_repo && \
chmod -R 777 /home/user/.cache /tmp/model_offload /tmp/model_repo
# Set environment variables
ENV PYTHONPATH=/app
ENV HOME=/home/user
ENV HF_HOME=/home/user/.cache/huggingface
ENV HUGGINGFACE_HUB_CACHE=/home/user/.cache/huggingface
ENV TRANSFORMERS_CACHE=/home/user/.cache/transformers
ENV HF_HUB_ENABLE_HF_TRANSFER=0
ENV HF_HUB_DISABLE_SYMLINKS_WARNING=1
ENV HF_HUB_DISABLE_PROGRESS_BARS=1
ENV MODEL_ID=google/gemma-3n-E4B-it
ENV DEVICE_MAP=cpu
ENV MAX_NEW_TOKENS=256
# Health check
HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
CMD curl -f http://localhost:7860/health || exit 1
# Commande de démarrage - FastAPI directement
CMD ["uvicorn", "src.app:app", "--host", "0.0.0.0", "--port", "7860"]