Ferdlance's picture
Update Dockerfile
9557ca2 verified
raw
history blame
1.63 kB
# 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"]