# Étape 1 : base Python avec pip FROM python:3.9-slim # Étape 2 : Création du dossier de travail WORKDIR /app # Étape 3 : Copie des fichiers de l'application COPY . . # Étape 4 : Installation des dépendances RUN pip install --no-cache-dir --upgrade pip \ && pip install --no-cache-dir -r requirements.txt # Étape 5 : Créer un dossier accessible pour Streamlit ENV STREAMLIT_HOME=/app/.streamlit ENV STREAMLIT_CONFIG_DIR=$STREAMLIT_HOME RUN mkdir -p $STREAMLIT_HOME && chmod -R 777 $STREAMLIT_HOME # Créer dossier pour vectordb RUN mkdir -p /data/db && chmod -R 755 /data # Créer un utilisateur sans privilèges RUN adduser --disabled-password --gecos '' appuser # Donner les droits à appuser (et non root) sur les dossiers RUN chown -R appuser:appuser /app /data /app/.streamlit # Utiliser cet utilisateur non-root USER appuser # Étape 6 : Configuration ENV STREAMLIT_SERVER_PORT=8501 ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0 ENV STREAMLIT_BROWSER_GATHERUSAGESTATS=false # Étape 7 : Port exposé EXPOSE 8501 # Étape 8 : Commande de lancement ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0", "--server.enableXsrfProtection=false"]