FROM python:3.11-slim # Create a non-root user for security RUN groupadd -r appuser && useradd -r -g appuser appuser WORKDIR /app # Install system dependencies for OCR and PDF processing RUN apt-get update && apt-get install -y \ build-essential \ curl \ git \ tesseract-ocr \ poppler-utils \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt ./ RUN pip3 install --no-cache-dir -r requirements.txt # Copy application files COPY . . # Set ownership to non-root user RUN chown -R appuser:appuser /app USER appuser EXPOSE 8501 HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health ENTRYPOINT ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]