FROM python:3.11-slim WORKDIR /app # System deps. ffmpeg is required for audio (pydub/whisper) and must be # installed here because Hugging Face ignores packages.txt in Docker mode. RUN apt-get update && apt-get install -y \ build-essential \ curl \ git \ ffmpeg \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt ./ RUN pip3 install --no-cache-dir -r requirements.txt # Presidio's default AnalyzerEngine() loads the spaCy "en_core_web_lg" model at # runtime; without it the PHI-redaction path raises. Install it at build time. RUN python -m spacy download en_core_web_lg # App code and Streamlit config (config was previously not copied into the image) COPY src/ ./src/ COPY .streamlit/ ./.streamlit/ EXPOSE 8501 HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health # Proxy-friendly flags so static assets / websocket serve correctly behind # the Hugging Face reverse proxy. ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", \ "--server.port=8501", "--server.address=0.0.0.0", \ "--server.headless=true", \ "--server.enableCORS=false", \ "--server.enableXsrfProtection=false"]