ernestmindres commited on
Commit
93d4490
·
verified ·
1 Parent(s): 9500f26

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +54 -54
Dockerfile CHANGED
@@ -1,55 +1,55 @@
1
- # ÉTAPE 1: Image de base
2
- FROM python:3.11-slim
3
-
4
- # ÉTAPE 2: Configuration et Dossier de travail
5
- # Ligne supprimée (ENV PORT 8080) pour laisser Hugging Face Spaces injecter le port correct ($PORT, généralement 7860).
6
- ENV FLASK_APP app.py
7
- ENV GUNICORN_WORKERS 4
8
- ENV GUNICORN_THREADS 2
9
-
10
- # Création et utilisation du répertoire /app
11
- WORKDIR /app
12
-
13
- # ÉTAPE 3: Installation des dépendances (OPTIMISATION CACHING)
14
- # Copie uniquement de requirements.txt pour mettre en cache l'installation
15
- COPY requirements.txt .
16
-
17
- # Installation des dépendances du système (eSpeak) et Python
18
- RUN apt-get update && \
19
- apt-get install -y espeak libespeak1 && \
20
- pip install --no-cache-dir -r requirements.txt \
21
- && rm requirements.txt
22
-
23
- # ÉTAPE 4: Copie de l'Application et des Fichiers
24
- # Nous copions tous les fichiers de l'application et nous assurons que
25
- # l'utilisateur 'user' en est le propriétaire.
26
-
27
- # CORRECTION MAJEURE : Ajout du dossier templates
28
- # Ceci est l'étape essentielle pour que Flask trouve vos fichiers HTML
29
- COPY templates /app/templates
30
-
31
- # Copie des autres fichiers (y compris app.py, votre point d'entrée)
32
- COPY app.py .
33
- COPY tts_engine.py .
34
-
35
- # Copie du script d'entrée
36
- COPY entrypoint.sh .
37
-
38
- # NOUVEAU: CORRECTION DES FINS DE LIGNE (Résout 'exec ./entrypoint.sh: no such file or directory')
39
- # Supprime le caractère de retour chariot (\r)
40
- RUN sed -i 's/\r$//' entrypoint.sh
41
-
42
- # Le rendre exécutable
43
- RUN chmod +x entrypoint.sh
44
-
45
- # ÉTAPE 5: Sécurité et Exécution
46
- # Création et bascule vers l'utilisateur non-root ('user') pour la sécurité
47
- RUN useradd -ms /bin/bash user
48
- RUN chown -R user:user /app
49
- USER user
50
-
51
- # Indique à Docker que le conteneur écoute sur ce port
52
- EXPOSE $PORT
53
-
54
- # Lance l'application via le script d'entrée
55
  CMD ["./entrypoint.sh"]
 
1
+ # ÉTAPE 1: Image de base
2
+ FROM python:3.11-slim
3
+
4
+ # ÉTAPE 2: Configuration et Dossier de travail
5
+ # Ligne supprimée (ENV PORT 8080) pour laisser Hugging Face Spaces injecter le port correct ($PORT, généralement 7860).
6
+ ENV FLASK_APP app.py
7
+ ENV GUNICORN_WORKERS 4
8
+ ENV GUNICORN_THREADS 2
9
+
10
+ # Création et utilisation du répertoire /app
11
+ WORKDIR /app
12
+
13
+ # ÉTAPE 3: Installation des dépendances (OPTIMISATION CACHING)
14
+ # Copie uniquement de requirements.txt pour mettre en cache l'installation
15
+ COPY requirements.txt .
16
+ # Installation des dépendances du système (eSpeak, PortAudio) et Python
17
+ RUN apt-get update && \
18
+ # NOUVEAU: Ajout de libportaudio2 (souvent requis pour les libs audio)
19
+ apt-get install -y espeak libespeak1 libportaudio2 && \
20
+ pip install --no-cache-dir -r requirements.txt \
21
+ && rm requirements.txt
22
+
23
+ # ÉTAPE 4: Copie de l'Application et des Fichiers
24
+ # Nous copions tous les fichiers de l'application et nous assurons que
25
+ # l'utilisateur 'user' en est le propriétaire.
26
+
27
+ # CORRECTION MAJEURE : Ajout du dossier templates
28
+ # Ceci est l'étape essentielle pour que Flask trouve vos fichiers HTML
29
+ COPY templates /app/templates
30
+
31
+ # Copie des autres fichiers (y compris app.py, votre point d'entrée)
32
+ COPY app.py .
33
+ COPY tts_engine.py .
34
+
35
+ # Copie du script d'entrée
36
+ COPY entrypoint.sh .
37
+
38
+ # NOUVEAU: CORRECTION DES FINS DE LIGNE (Résout 'exec ./entrypoint.sh: no such file or directory')
39
+ # Supprime le caractère de retour chariot (\r)
40
+ RUN sed -i 's/\r$//' entrypoint.sh
41
+
42
+ # Le rendre exécutable
43
+ RUN chmod +x entrypoint.sh
44
+
45
+ # ÉTAPE 5: Sécurité et Exécution
46
+ # Création et bascule vers l'utilisateur non-root ('user') pour la sécurité
47
+ RUN useradd -ms /bin/bash user
48
+ RUN chown -R user:user /app
49
+ USER user
50
+
51
+ # Indique à Docker que le conteneur écoute sur ce port
52
+ EXPOSE $PORT
53
+
54
+ # Lance l'application via le script d'entrée
55
  CMD ["./entrypoint.sh"]