File size: 1,625 Bytes
e8e4f53 ac667c7 e8e4f53 04eb473 d1fe4b1 c7fe3ec c36dbf9 d1fe4b1 e8e4f53 2ea0020 d1fe4b1 04eb473 d1fe4b1 db189e6 2ea0020 9557ca2 2ea0020 cc5a4a1 c7fe3ec b0c9f76 70719be 7c21cde 2ea0020 9557ca2 2ea0020 d1fe4b1 d886410 c7fe3ec 2ea0020 7c21cde e8e4f53 b0c9f76 |
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 |
# Utilise une image Python de base
FROM python:3.11-slim
# Définit le répertoire de travail dans le conteneur
WORKDIR /app
# Installe les dépendances du système (outils de compilation et utilitaires)
RUN apt-get update && apt-get install -y \
build-essential \
cmake \
git \
aria2 \
wget \
libcurl4-openssl-dev \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
# Clone le dépôt llama.cpp, puis compile-le
RUN git clone https://github.com/ggerganov/llama.cpp.git
WORKDIR /app/llama.cpp
RUN mkdir build
WORKDIR /app/llama.cpp/build
RUN cmake .. -DLLAMA_CURL=1
RUN cmake --build . --config Release
WORKDIR /app
# Crée tous les dossiers nécessaires qui n'existent pas encore
RUN mkdir -p logs data config server models .kaggle .streamlit
# Télécharge le modèle GGUF avec la bonne URL
RUN wget -P models/ "https://huggingface.co/ggml-org/Qwen2.5-Coder-1.5B-Q8_0-GGUF/resolve/main/qwen2.5-coder-1.5b-q8_0.gguf"
# Copie tous les fichiers de votre dépôt dans le conteneur
COPY . /app
# Rend le script de démarrage exécutable
RUN chmod +x ./start.sh
# Change la propriété des dossiers à l'utilisateur non-root par défaut (1000:1000)
RUN chown -R 1000:1000 logs data config server models .kaggle .streamlit
# Définit les dossiers de configuration dans le répertoire de travail pour les permissions
ENV KAGGLE_CONFIG_DIR=/app
ENV STREAMLIT_SERVER_INFO_DIR=/app/.streamlit
ENV STREAMLIT_BROWSER_GATHER_USAGE_STATS=false
# Installe les dépendances Python
RUN pip install --no-cache-dir -r requirements.txt
# Définit le point d'entrée du conteneur
ENTRYPOINT ["/app/start.sh"] |