Spaces:
Sleeping
Sleeping
| # É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"] | |