rkonan commited on
Commit
b2a7451
·
1 Parent(s): 3056cf9

gestion des compils

Browse files
Files changed (1) hide show
  1. Dockerfile +24 -22
Dockerfile CHANGED
@@ -1,41 +1,43 @@
1
- # Base image avec Python 3.10
2
- FROM python:3.10-slim
3
 
4
- # Installer les dépendances système nécessaires
5
  RUN apt-get update && apt-get install -y \
6
  build-essential \
 
7
  cmake \
8
  libopenblas-dev \
9
  libsqlite3-dev \
10
- git \
11
  curl \
12
  && rm -rf /var/lib/apt/lists/*
13
 
14
- # Créer un utilisateur non-root (important pour éviter les erreurs de permission nltk/llama)
15
- RUN useradd -m appuser
16
- USER appuser
17
-
18
- # Créer le dossier de travail
19
- WORKDIR /home/appuser/app
20
 
21
- # Copier les fichiers nécessaires
22
- COPY --chown=appuser:appuser requirements.txt .
23
 
24
- # Installer les paquets Python
25
- RUN pip install --upgrade pip && \
26
- pip install --no-cache-dir -r requirements.txt
27
 
28
- # Télécharger les ressources NLTK nécessaires dans un dossier accessible
29
- RUN python -m nltk.downloader -d /home/appuser/nltk_data punkt stopwords
30
 
31
- # Copier le code (en tant que appuser)
32
- COPY --chown=appuser:appuser . .
 
 
 
 
 
 
33
 
34
- # Définir la variable d'environnement pour nltk
35
- ENV NLTK_DATA=/home/appuser/nltk_data
36
 
37
  # Exposer le port Streamlit
38
  EXPOSE 7860
39
 
40
- # Commande de démarrage
41
  CMD ["streamlit", "run", "app.py", "--server.port=7860", "--server.address=0.0.0.0"]
 
1
+ # Utilise Python 3.12 slim
2
+ FROM python:3.12-slim
3
 
4
+ # Dépendances système minimales
5
  RUN apt-get update && apt-get install -y \
6
  build-essential \
7
+ git \
8
  cmake \
9
  libopenblas-dev \
10
  libsqlite3-dev \
 
11
  curl \
12
  && rm -rf /var/lib/apt/lists/*
13
 
14
+ # Dossier de travail
15
+ WORKDIR /code
 
 
 
 
16
 
17
+ # Copie des requirements hors llama-cpp
18
+ COPY requirements.txt .
19
 
20
+ # Install rapide de tout sauf llama-cpp-python (optionnel si inclus dans wheels)
21
+ RUN pip install --no-cache-dir --upgrade pip
22
+ RUN pip install --no-cache-dir --prefer-binary -r requirements.txt
23
 
24
+ # Copier les wheels (que tu as déjà créées en local)
25
+ COPY wheels/ ./wheels/
26
 
27
+ # Installer les .whl précompilés pour éviter le build (crucial sur HF Spaces)
28
+ RUN pip install --no-cache-dir \
29
+ ./wheels/llama_cpp_python-0.3.14-*.whl \
30
+ ./wheels/numpy-2.3.2-*.whl \
31
+ ./wheels/typing_extensions-4.14.1-*.whl \
32
+ ./wheels/diskcache-5.6.3-*.whl \
33
+ ./wheels/jinja2-3.1.6-*.whl \
34
+ ./wheels/MarkupSafe-3.0.2-*.whl
35
 
36
+ # Copier le reste du code
37
+ COPY . .
38
 
39
  # Exposer le port Streamlit
40
  EXPOSE 7860
41
 
42
+ # Lancement Streamlit
43
  CMD ["streamlit", "run", "app.py", "--server.port=7860", "--server.address=0.0.0.0"]