# Utiliser une image Python officielle légère FROM python:3.11-slim # Définir le répertoire de travail WORKDIR /app # Dépendances système pour compiler certains packages (si nécessaire) RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ && rm -rf /var/lib/apt/lists/* # Copier les fichiers de dépendances COPY backend/requirements.txt ./backend/ # Installer les dépendances Python # Pour Hugging Face, on s'assure d'installer la version CPU de PyTorch pour alléger l'image RUN pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu RUN pip install --no-cache-dir -r backend/requirements.txt # Copier le reste du code COPY . . # Créer les répertoires de données nécessaires pour persistance (Hugging Face monte le stockage dans /data si configuré, ou on crée des dossiers locaux par défaut) RUN mkdir -p data/documents data/chroma_db # Exposer le port par défaut attendu par Hugging Face Spaces (7860) ou Render EXPOSE 7860 # Variable d'environnement pour forcer FastAPI à écouter sur le bon port ENV PORT=7860 # Lancer le serveur backend FastAPI (qui sert aussi le frontend) CMD ["sh", "-c", "cd backend && uvicorn main:app --host 0.0.0.0 --port ${PORT}"]