# Use official Python slim image FROM python:3.10-slim # Set working directory WORKDIR /app # Install system dependencies needed for PDF generation RUN apt-get update && apt-get install -y \ build-essential \ libpoppler-cpp-dev \ pkg-config \ fonts-dejavu-core \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Copy requirements first (for Docker layer caching) COPY requirements.txt . # Install Python dependencies RUN pip install --no-cache-dir -r requirements.txt # Copy all app files COPY . . # Create a writable directory for temporary files and PDF output RUN mkdir -p /app/tmp && chmod 777 /app/tmp RUN chmod 777 /app # Expose Streamlit default port EXPOSE 7860 # Set environment variables for Streamlit ENV STREAMLIT_SERVER_PORT=7860 ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0 ENV STREAMLIT_SERVER_HEADLESS=true ENV STREAMLIT_BROWSER_GATHER_USAGE_STATS=false # ✅ Fix for 403 file upload error on HF Spaces ENV STREAMLIT_SERVER_ENABLE_CORS=false ENV STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION=false # Run the app via start.sh CMD ["/bin/bash", "start.sh"]