QuentinL52 commited on
Commit
bc3b567
·
verified ·
1 Parent(s): 2fc5b90

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +23 -13
Dockerfile CHANGED
@@ -4,26 +4,36 @@ FROM python:3.11-slim
4
  # Définir le répertoire de travail
5
  WORKDIR /app
6
 
7
- # --- CORRECTION DÉFINITIVE DES PERMISSIONS ---
8
- # 1. On crée le dossier de cache.
9
- # 2. On le rend accessible en écriture par n'importe quel utilisateur dans le conteneur.
10
- # C'est une solution robuste pour les environnements comme Hugging Face Spaces.
11
- RUN mkdir -p /app/cache && \
12
- chmod -R 777 /app/cache
13
-
14
- # On dit aux librairies Hugging Face d'utiliser ce dossier.
 
 
 
 
 
15
  ENV HF_HOME=/app/cache
 
 
 
16
 
17
  # Copier les dépendances et les installer
18
  COPY requirements.txt .
19
  RUN pip install --no-cache-dir -r requirements.txt
20
 
21
- # Copier le reste du code de l'application
22
- COPY . .
 
 
 
23
 
24
- # Exposer le port de l'API (Hugging Face s'occupera de la redirection)
25
  EXPOSE 8000
26
 
27
- # --- COMMANDE DE LANCEMENT DIRECTE ---
28
- # On lance directement Uvicorn en pointant vers le bon objet 'app' dans 'main.py'
29
  CMD ["python", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
 
4
  # Définir le répertoire de travail
5
  WORKDIR /app
6
 
7
+ # Créer un utilisateur non-root pour des raisons de sécurité et de permissions
8
+ RUN groupadd -r appuser && useradd --no-log-init -r -g appuser -d /app appuser
9
+
10
+ # Créer les dossiers de cache nécessaires avec les bonnes permissions
11
+ RUN mkdir -p /app/cache/hub && \
12
+ mkdir -p /app/cache/models && \
13
+ mkdir -p /tmp/huggingface_cache && \
14
+ chown -R appuser:appuser /app/cache && \
15
+ chown -R appuser:appuser /tmp/huggingface_cache && \
16
+ chmod -R 755 /app/cache && \
17
+ chmod -R 755 /tmp/huggingface_cache
18
+
19
+ # Variables d'environnement pour Hugging Face
20
  ENV HF_HOME=/app/cache
21
+ ENV TRANSFORMERS_CACHE=/app/cache/models
22
+ ENV HF_DATASETS_CACHE=/app/cache/datasets
23
+ ENV SENTENCE_TRANSFORMERS_HOME=/app/cache/sentence_transformers
24
 
25
  # Copier les dépendances et les installer
26
  COPY requirements.txt .
27
  RUN pip install --no-cache-dir -r requirements.txt
28
 
29
+ # Copier le reste du code et donner les permissions
30
+ COPY --chown=appuser:appuser . .
31
+
32
+ # Changer pour l'utilisateur non-root
33
+ USER appuser
34
 
35
+ # Exposer le port de l'API
36
  EXPOSE 8000
37
 
38
+ # Commande de lancement
 
39
  CMD ["python", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]