chatbot-fr / Dockerfile
rkonan's picture
correction des wheels
ea3dfaa
# ⚙️ É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"]