# Use Python 3.12 (better compatibility for scikit-learn/scipy) FROM python:3.12-slim # Set environment variables ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PIP_NO_CACHE_DIR=1 WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ build-essential \ curl \ git \ && rm -rf /var/lib/apt/lists/* # Copy requirements FIRST (optimizes Docker caching) COPY requirements.txt . RUN pip3 install -r requirements.txt # Copy the ENTIRE project (including app/ folder and app.py) COPY . . # Ensure the app directory is reachable ENV PYTHONPATH=/app EXPOSE 8501 HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health # Run the streamlit app ENTRYPOINT ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]