| # HF Spaces (Docker SDK) — Streamlit 구동. | |
| # 벡터DB(data/chroma)는 이미지에 포함하지 않고, 앱 시작 시 HF private 데이터셋에서 | |
| # 토큰으로 내려받는다(rag/common.ensure_corpus). BGE-M3 임베더·리랭커는 최초 기동 시 | |
| # HF Hub에서 HF_HOME 캐시로 다운로드된다. | |
| FROM python:3.11-slim | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| build-essential git curl && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # 비루트 사용자 (HF Spaces 권장) | |
| RUN useradd -m -u 1000 user | |
| USER user | |
| ENV HOME=/home/user \ | |
| PATH=/home/user/.local/bin:$PATH \ | |
| HF_HOME=/home/user/.cache/huggingface \ | |
| STREAMLIT_SERVER_PORT=7860 \ | |
| STREAMLIT_SERVER_ADDRESS=0.0.0.0 \ | |
| STREAMLIT_SERVER_HEADLESS=true \ | |
| STREAMLIT_BROWSER_GATHER_USAGE_STATS=false | |
| WORKDIR /home/user/app | |
| COPY --chown=user requirements.txt . | |
| RUN pip install --no-cache-dir --upgrade pip && \ | |
| pip install --no-cache-dir -r requirements.txt | |
| COPY --chown=user . . | |
| EXPOSE 7860 | |
| CMD ["streamlit", "run", "rag/app.py", "--server.port=7860", "--server.address=0.0.0.0"] | |