360TechEnv commited on
Commit
1c72f70
·
verified ·
1 Parent(s): a32c7b1

Upload Dockerfile with huggingface_hub

Browse files
Files changed (1) hide show
  1. Dockerfile +53 -0
Dockerfile ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Dockerfile pour l'interface de classification de déchets
2
+ FROM python:3.11-slim
3
+
4
+ # Métadonnées
5
+ LABEL maintainer="Waste Classifier Team"
6
+ LABEL description="Interface Streamlit pour la classification de déchets avec modèles v1 et v2"
7
+ LABEL version="1.0"
8
+
9
+ # Variables d'environnement
10
+ ENV PYTHONUNBUFFERED=1
11
+ ENV PYTHONDONTWRITEBYTECODE=1
12
+ ENV STREAMLIT_SERVER_PORT=8501
13
+ ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0
14
+
15
+ # Installer les dépendances système
16
+ RUN apt-get update && apt-get install -y \
17
+ build-essential \
18
+ curl \
19
+ software-properties-common \
20
+ git \
21
+ && rm -rf /var/lib/apt/lists/*
22
+
23
+ # Créer le répertoire de travail
24
+ WORKDIR /app
25
+
26
+ # Copier les fichiers de dépendances
27
+ COPY requirements.txt .
28
+
29
+ # Installer les dépendances Python
30
+ RUN pip install --no-cache-dir --upgrade pip && \
31
+ pip install --no-cache-dir -r requirements.txt
32
+
33
+ # Créer le dossier pour les modèles
34
+ RUN mkdir -p models
35
+
36
+ # Copier le code de l'application
37
+ COPY app.py .
38
+ COPY prepare_models_for_hf.py .
39
+
40
+ # Créer un utilisateur non-root pour la sécurité
41
+ RUN useradd --create-home --shell /bin/bash app && \
42
+ chown -R app:app /app
43
+ USER app
44
+
45
+ # Exposer le port
46
+ EXPOSE 8501
47
+
48
+ # Health check
49
+ HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
50
+ CMD curl -f http://localhost:8501/_stcore/health || exit 1
51
+
52
+ # Commande de démarrage
53
+ CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]