# FROM python:3.13.5-slim # WORKDIR /app # RUN apt-get update && apt-get install -y \ # build-essential \ # curl \ # git \ # && rm -rf /var/lib/apt/lists/* # COPY requirements.txt ./ # COPY src/ ./src/ # RUN pip3 install -r requirements.txt # EXPOSE 8501 # HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health # ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"] # 1. Utilise une image Python légère et récente FROM python:3.13.5-slim WORKDIR /app # 2. Installe uniquement les dépendances système nécessaires # et nettoie immédiatement après RUN apt-get update && \ apt-get install -y --no-install-recommends \ curl \ git \ && rm -rf /var/lib/apt/lists/* # 3. Copie uniquement requirements.txt et installe les dépendances Python # en évitant le cache pip COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt && \ rm -f requirements.txt # 4. Copie le reste du code COPY src/ ./src/ # 5. Nettoie les caches Python inutiles RUN find /app -type d -name __pycache__ -exec rm -r {} + && \ find /app -type f -name "*.pyc" -delete # 6. Expose le port EXPOSE 8501 # 7. Healthcheck HEALTHCHECK --interval=30s --timeout=3s \ CMD curl --fail http://localhost:8501/_stcore/health || exit 1 # 8. Lance l'application ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", \ "--server.port=8501", "--server.address=0.0.0.0"]