File size: 1,212 Bytes
156c1af
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# É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"]