File size: 1,235 Bytes
3f637a5
 
1402fad
3f637a5
 
 
 
 
 
 
 
 
 
1402fad
 
3f637a5
 
 
 
 
 
 
 
 
 
 
 
 
 
1402fad
3f637a5
 
1402fad
3f637a5
 
1402fad
3f637a5
 
1402fad
3f637a5
 
1402fad
3f637a5
 
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
42
43
44
# Étape 1 : Image de base Python
FROM python:3.11-slim AS base

# Variables d'environnement pour Python
ENV PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1 \
    PIP_NO_CACHE_DIR=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=1

# Créer un utilisateur non-root (UID 1000 imposé par HF)
RUN useradd -m -u 1000 user

# Définit le répertoire de travail
WORKDIR /app

# Étape 2 : Installation des dépendances
FROM base AS dependencies

# Copie uniquement les fichiers de dépendances
COPY requirements.txt .

# Installation des dépendances
RUN pip install --no-cache-dir -r requirements.txt

# Étape 3 : Image finale
FROM base AS final

# Copie les dépendances installées depuis l'étape précédente
COPY --from=dependencies /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages

# AJOUT CRUCIAL : copier les binaires (streamlit, etc.)
COPY --from=dependencies /usr/local/bin /usr/local/bin

# Copie tout le code de l'application avec les bons propriétaires
COPY --chown=user:user . .

# Bascule vers l'utilisateur non-root
USER user

# Expose le port attendu par Hugging Face Spaces
EXPOSE 7860

# Commande de démarrage
CMD ["streamlit", "run", "app.py", "--server.port=7860", "--server.address=0.0.0.0"]