# Use an official Python runtime as a parent image FROM python:3.12-slim # Prevents writing .pyc files and buffering stdout/stderr ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 # Set working directory WORKDIR /app # Copy requirements first to leverage Docker cache COPY requirements.txt . # Install system dependencies (if needed) and Python deps RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ && rm -rf /var/lib/apt/lists/* RUN pip install --upgrade pip RUN pip install --no-cache-dir -r requirements.txt # Copy app code COPY . . # Expose Streamlit default port EXPOSE 8501 # Streamlit config: run headless and bind to 0.0.0.0 ENV STREAMLIT_SERVER_HEADLESS=true ENV STREAMLIT_SERVER_ENABLE_CORS=false ENV STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION=false ENV STREAMLIT_SERVER_PORT=8501 ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0 # Run Streamlit CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]