p14 / Dockerfile
DidierHernandez's picture
Correction bug Dockerfile
49b32db
Raw History Blame Contribute Delete
2.24 kB
# Ce fichier Dockerfile dans le dossier racine du projet14 objectif1 poc/
# Fichier adapté pour faire fonctionner sur HF Spaces.
# Résolution des désalignements : Abandon complet de l'arborescence src/ obsolète,
# Didier : mise en commentaires de HEALTHCHECK car non compatible HF Spaces
# intégration de l'index FAISS local et routage impératif sur le port standardisé 7860
FROM python:3.13.5-slim
# Configuration des variables d'environnement pour Python et Streamlit
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
STREAMLIT_SERVER_PORT=7860 \
STREAMLIT_SERVER_ADDRESS=0.0.0.0 \
STREAMLIT_SERVER_HEADLESS=true
WORKDIR /app
# Installation des dépendances système nécessaires
RUN apt-get update && apt-get install -y \
build-essential \
curl \
git \
&& rm -rf /var/lib/apt/lists/*
# Didier : Préparation des répertoires de l'arborescence réelle de poc/
# Création préalable pour sécuriser les droits d'écriture des logs et de Streamlit sur HF
RUN mkdir -p /app/data /app/utils /app/corpus /app/pages /app/.streamlit
# Étape 1 : Copie et installation des dépendances Python
COPY requirements.txt ./
RUN pip3 install --no-cache-dir -r requirements.txt
# Étape 2 : Copie chirurgicale calquée sur l'arborescence réelle de poc/ (sans mention de src/)
# On copie les scripts principaux de l'interface validés en local
COPY streamlit_app.py ./
COPY MistralChat.py ./
# On copie les modules du Socle Technique Unique et de Configuration
COPY utils/ ./utils/
# Didier : Ingestion de l'index FAISS pré-généré localement (< 2 Mo) pour le rendre immortel sur Git
COPY data/ ./data/
# Copie du corpus de connaissances Markdown et des pages secondaires (Feedback Viewer)
COPY corpus/ ./corpus/
COPY pages/ ./pages/
# Exposition du port unique et obligatoire exigé par Hugging Face Spaces
EXPOSE 7860
# Vérification de l'état de santé du conteneur réalignée sur le port de production 7860
#HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
# CMD curl --fail http://localhost:7860/_stcore/health || exit 1
# Didier : Lancement officiel de l'interface Métier unifiée sur le port requis par HF
ENTRYPOINT ["streamlit", "run", "streamlit_app.py"]