Spaces:
Sleeping
Sleeping
| # Image de déploiement pour Hugging Face Spaces (SDK Docker). | |
| # Slim : pas de torch/sentence-transformers (le défaut openai-3-small passe par | |
| # l'API ; l'import HuggingFace est devenu paresseux). Cache FAISS openai-3-small | |
| # (~1,2 Mo) embarqué → aucune reconstruction au démarrage. | |
| FROM python:3.11-slim | |
| # libgomp1 : requis par faiss-cpu. | |
| RUN apt-get update && apt-get install -y --no-install-recommends libgomp1 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # HF Spaces exécute le conteneur en utilisateur 1000 (bonne pratique). | |
| RUN useradd -m -u 1000 user | |
| USER user | |
| ENV HOME=/home/user \ | |
| PATH=/home/user/.local/bin:$PATH \ | |
| HOST=0.0.0.0 \ | |
| PORT=7860 \ | |
| MPLCONFIGDIR=/tmp/mpl \ | |
| PYTHONUNBUFFERED=1 | |
| WORKDIR /home/user/app | |
| COPY --chown=user requirements-deploy.txt . | |
| RUN pip install --no-cache-dir --user -r requirements-deploy.txt | |
| COPY --chown=user . . | |
| EXPOSE 7860 | |
| # UN SEUL worker (job store en mémoire + threads d'arrière-plan partagés), | |
| # plusieurs threads pour que le polling et un job tournent en parallèle. | |
| # Port : ${PORT} si l'hébergeur l'impose (Render → 10000), sinon 7860 (HF, | |
| # posé par le ENV ci-dessus). Forme shell pour l'expansion de variable. | |
| CMD gunicorn -w 1 --threads 8 --timeout 120 -b 0.0.0.0:${PORT:-7860} run:app | |