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"]