QuentinL52 commited on
Commit
84da0fa
·
verified ·
1 Parent(s): 19bce7c

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +28 -22
Dockerfile CHANGED
@@ -1,32 +1,38 @@
1
- # Utiliser une image Python 3.11 moderne et légère
2
  FROM python:3.11-slim
3
 
4
- # Définir le répertoire de travail
5
- WORKDIR /app
 
 
 
 
 
 
 
 
6
 
7
- # --- CORRECTION DÉFINITIVE DES PERMISSIONS ---
8
- # On utilise un répertoire de données standard (/data) et on s'assure qu'il est accessible.
9
- # On définit TOUTES les variables de cache connues pour couvrir toutes les librairies (transformers, datasets, torch).
10
- ENV HF_HOME=/data/huggingface
11
- ENV TRANSFORMERS_CACHE=/data/huggingface/transformers
12
- ENV HF_DATASETS_CACHE=/data/huggingface/datasets
13
- ENV TORCH_HOME=/data/torch
14
 
15
- # On crée ces répertoires et on leur donne des permissions ouvertes (777).
16
- # C'est la méthode la plus fiable pour les environnements managés comme Hugging Face Spaces.
17
- RUN mkdir -p $HF_HOME $TRANSFORMERS_CACHE $HF_DATASETS_CACHE $TORCH_HOME && \
18
- chmod -R 777 /data
19
 
20
- # Copier les dépendances et les installer
21
  COPY requirements.txt .
22
- RUN pip install --no-cache-dir -r requirements.txt
23
 
24
- # Copier le reste du code de l'application
25
  COPY . .
 
 
 
 
 
 
 
 
26
 
27
- # Exposer le port de l'API (Hugging Face s'occupera de la redirection)
28
- EXPOSE 8000
29
 
30
- # --- COMMANDE DE LANCEMENT DIRECTE ---
31
- # On lance directement Uvicorn.
32
- CMD ["python", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
 
 
1
  FROM python:3.11-slim
2
 
3
+ # Variables d'environnement pour Hugging Face
4
+ ENV PYTHONUNBUFFERED=1 \
5
+ PIP_NO_CACHE_DIR=off \
6
+ PIP_DISABLE_PIP_VERSION_CHECK=on \
7
+ PIP_DEFAULT_TIMEOUT=100 \
8
+ HF_HOME=/app/cache \
9
+ PYTHONPATH=/app
10
+
11
+ # Créer un utilisateur non-root
12
+ RUN addgroup --system app && adduser --system --group app
13
 
14
+ WORKDIR /app
 
 
 
 
 
 
15
 
16
+ # Installer uv pour des installations plus rapides
17
+ RUN pip install uv
 
 
18
 
19
+ # Copier les requirements et installer les dépendances
20
  COPY requirements.txt .
21
+ RUN uv pip install --system --no-cache -r requirements.txt
22
 
23
+ # Copier le code source
24
  COPY . .
25
+ COPY knowledge_base ./knowledge_base
26
+
27
+ # Créer les répertoires nécessaires et ajuster les permissions
28
+ RUN mkdir -p /app/cache /app/vector_store && \
29
+ chown -R app:app /app
30
+
31
+ # Changer vers l'utilisateur non-root
32
+ USER app
33
 
34
+ # Exposer le port pour Hugging Face Spaces
35
+ EXPOSE 7860
36
 
37
+ # Commande de démarrage pour Hugging Face Spaces
38
+ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]