rkonan commited on
Commit
cdd3156
·
1 Parent(s): 2580ae8

correction dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +25 -23
Dockerfile CHANGED
@@ -1,43 +1,45 @@
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"]
 
1
+ # ⚙️ Étape 1 : base Python 3.12 slim
2
  FROM python:3.12-slim
3
 
4
+ # 📦 Étape 2 : installer les dépendances système minimales
5
  RUN apt-get update && apt-get install -y \
6
  build-essential \
7
  git \
8
  cmake \
9
+ curl \
10
  libopenblas-dev \
11
  libsqlite3-dev \
 
12
  && rm -rf /var/lib/apt/lists/*
13
 
14
+ # 📁 Étape 3 : définir le répertoire de travail
15
  WORKDIR /code
16
 
17
+ # 📥 Étape 4 : copier les wheels précompilés (AVANT le pip install)
 
 
 
 
 
 
 
18
  COPY wheels/ ./wheels/
19
 
20
+ # Étape 5 : installer les wheels manuellement AVANT tout (évite les builds !)
21
+ RUN pip install --no-cache-dir --upgrade pip setuptools wheel \
22
+ && pip install --no-cache-dir --find-links=./wheels \
23
+ llama-cpp-python==0.3.14 \
24
+ numpy==1.26.4 \
25
+ typing-extensions==4.14.1 \
26
+ diskcache==5.6.3 \
27
+ jinja2==3.1.6 \
28
+ MarkupSafe==3.0.2
29
+
30
+ # 📄 Étape 6 : copier le requirements.txt (hors wheels)
31
+ COPY requirements.txt .
32
+
33
+ # 🔧 Étape 7 : installer les dépendances restantes via wheels locaux (si dispo)
34
+ RUN pip install --no-cache-dir --prefer-binary \
35
+ --find-links=./wheels \
36
+ -r requirements.txt
37
 
38
+ # 📦 Étape 8 : copier le code de l'app
39
  COPY . .
40
 
41
+ # 🌐 Étape 9 : exposer le port utilisé par Streamlit
42
  EXPOSE 7860
43
 
44
+ # 🚀 Étape 10 : lancer l'application Streamlit
45
  CMD ["streamlit", "run", "app.py", "--server.port=7860", "--server.address=0.0.0.0"]