FROM python:3.13.5-slim WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ build-essential \ curl \ git \ && rm -rf /var/lib/apt/lists/* # Create writable cache dir for Hugging Face RUN mkdir -p /app/hf_cache && chmod -R 777 /app/hf_cache ENV HF_HOME=/app/hf_cache ENV TRANSFORMERS_CACHE=/app/hf_cache # Copy requirements and install COPY requirements.txt ./ RUN pip3 install --no-cache-dir -r requirements.txt # Pre-download the SentenceTransformer model to avoid runtime PermissionError RUN python3 -c "from sentence_transformers import SentenceTransformer; SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2', cache_folder='/app/hf_cache')" # Copy app source code COPY src/ ./src/ EXPOSE 8501 HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health || exit 1 ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]