FROM python:3.9-slim # Set working directory WORKDIR /app # Set safe home and Streamlit config path ENV HOME=/app ENV STREAMLIT_HOME=/app/.streamlit # Install dependencies RUN apt-get update && apt-get install -y \ build-essential \ curl \ git \ && rm -rf /var/lib/apt/lists/* # Copy files COPY requirements.txt ./ COPY src/ ./src/ # Create .streamlit directory and config files before install RUN mkdir -p $STREAMLIT_HOME && \ echo "\ [server]\n\ headless = true\n\ port = 8501\n\ enableCORS = false\n\ \n\ [theme]\n\ base = 'light'\n\ " > $STREAMLIT_HOME/config.toml && \ touch $STREAMLIT_HOME/machine_id_v4 # ensure file exists # Install Python dependencies RUN pip3 install --no-cache-dir -r requirements.txt # Expose port EXPOSE 8501 # Health check HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health # Entrypoint to run app ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]