AssistantJuridique2 / Dockerfile
Guillaumedbx's picture
Initial commit with Git LFS
156c1af
# É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"]