FROM python:3.10-slim WORKDIR /app # Install system dependencies for OpenCV and image processing RUN apt-get update && apt-get install -y \ libgl1-mesa-glx \ libgl1-mesa-dri \ libglib2.0-0 \ libsm6 \ libxext6 \ libxrender-dev \ libgomp1 \ curl \ build-essential \ && rm -rf /var/lib/apt/lists/* || \ (apt-get update && apt-get install -y \ libgl1 \ libglib2.0-0 \ libsm6 \ libxext6 \ libxrender-dev \ libgomp1 \ curl \ build-essential \ && rm -rf /var/lib/apt/lists/*) # Set environment variables for Streamlit ENV STREAMLIT_CONFIG_DIR=/app/.streamlit ENV STREAMLIT_GLOBAL_CONFIG_DIR=/app/.streamlit ENV STREAMLIT_BROWSER_GATHER_USAGE_STATS=false ENV STREAMLIT_SERVER_HEADLESS=true ENV STREAMLIT_SERVER_ENABLE_CORS=false ENV STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION=false # Copy requirements first for better caching COPY requirements.txt . # Install Python dependencies RUN pip install --no-cache-dir -r requirements.txt # Copy the application code COPY . . # Create streamlit config directory and set permissions RUN mkdir -p /app/.streamlit && \ chmod -R 755 /app/.streamlit # Expose the port Streamlit runs on EXPOSE 8501 # Health check HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health # Run the Streamlit app CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]