Ferdlance's picture
Update Dockerfile
c7fe3ec verified
raw
history blame
1.6 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, Git 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/*
# Crée tous les dossiers nécessaires en tant qu'utilisateur root et change la propriété
RUN mkdir -p logs data config server scripts models .kaggle .streamlit llama.cpp/build && \
chown -R 1000:1000 logs data config server scripts models .kaggle .streamlit llama.cpp/build
# Clone et compile llama.cpp pendant le build
RUN git clone https://github.com/ggerganov/llama.cpp.git
WORKDIR /app/llama.cpp
RUN cmake .. -DLLAMA_CURL=1
RUN cmake --build . --config Release
WORKDIR /app
# Télécharge le modèle GGUF directement dans le Dockerfile
# Vous pouvez ajuster l'URL et le nom du fichier si nécessaire
RUN wget -P models/ "https://huggingface.co/Qwen/Qwen2.5-Coder-1.5B-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
# 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
# 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"]