Spaces:
Paused
Paused
File size: 1,512 Bytes
8bea8c3 6f01060 8bea8c3 6f01060 b2a7451 6f01060 cdd3156 6f01060 8bea8c3 22e7a08 6f01060 ea3dfaa 22e7a08 ea3dfaa b2a7451 ea3dfaa 6f01060 ea3dfaa 8a9ecbe cdd3156 ea3dfaa 8bea8c3 8a9ecbe ea3dfaa 8a9ecbe ea3dfaa 8a9ecbe f63174b ea3dfaa b2a7451 f63174b ea3dfaa 6f01060 ea3dfaa 6f01060 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# ⚙️ Étape 1 : Image de base stable avec GLIBC + wheels compatibles
FROM python:3.10-slim
# 📦 Étape 2 : dépendances système minimales
RUN apt-get update && apt-get install -y \
build-essential \
git \
cmake \
curl \
libopenblas-dev \
libsqlite3-dev \
libgl1 \
libglib2.0-0 \
libomp-dev \
&& rm -rf /var/lib/apt/lists/*
# 👤 Étape 3 : Créer un utilisateur non-root "appuser"
RUN useradd -ms /bin/bash appuser
# 📁 Étape 4 : Créer le dossier de travail avec droits pour appuser
WORKDIR /code
RUN mkdir -p /code/.streamlit && chown -R appuser:appuser /code
# ⚠️ Étape 5 : définir le HOME pour Streamlit
ENV HOME="/code"
# 📥 Étape 6 : copier les wheels (llama-cpp-python précompilée)
COPY wheels/ ./wheels/
# ⚡ Étape 7 : installer pip et la wheel locale
RUN pip install --no-cache-dir --upgrade pip setuptools wheel \
&& pip install --no-cache-dir ./wheels/llama_cpp_python-0.3.14-*.whl
# 📄 Étape 8 : copier requirements.txt (sans llama-cpp-python dedans)
COPY requirements.txt .
# 📦 Étape 9 : installer le reste des dépendances
RUN pip install --no-cache-dir --prefer-binary -r requirements.txt
# 📁 Étape 10 : copier tout le code de l'application
COPY . .
# 👤 Étape 11 : basculer en utilisateur non-root pour exécution
USER appuser
# 🌐 Étape 12 : exposer le port Streamlit
EXPOSE 7860
# 🚀 Étape 13 : lancer Streamlit
CMD ["streamlit", "run", "app.py", "--server.port=7860", "--server.address=0.0.0.0"]
|