# File 1: Dockerfile FROM python:3.9-slim # Set working directory WORKDIR /app # Set environment variables ENV PYTHONUNBUFFERED=1 ENV STREAMLIT_SERVER_HEADLESS=true ENV STREAMLIT_SERVER_PORT=7860 ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0 ENV STREAMLIT_BROWSER_GATHER_USAGE_STATS=false # Install system dependencies for Chrome and Selenium RUN apt-get update && apt-get install -y \ wget \ gnupg \ unzip \ curl \ xvfb \ chromium \ chromium-driver \ && rm -rf /var/lib/apt/lists/* # Set Chrome options for headless mode ENV CHROME_BIN=/usr/bin/chromium ENV CHROMEDRIVER_PATH=/usr/bin/chromedriver # Copy requirements first for better caching COPY requirements.txt . # Install Python dependencies RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt # Copy application files COPY . . # Create streamlit config directory RUN mkdir -p /app/.streamlit # Expose port EXPOSE 7860 # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD curl -f http://localhost:7860/_stcore/health || exit 1 # Run the application CMD ["streamlit", "run", "app.py", "--server.port=7860", "--server.address=0.0.0.0", "--server.headless=true"]