genai-ebs-chatbot / Dockerfile
Natesh
Initial deploy: Streamlit chatbot with HF Inference backend
c159655
Raw
History Blame Contribute Delete
1.84 kB
# ─────────────────────────────────────────────
# Dockerfile for Hugging Face Spaces (Docker SDK)
# Free tier: 2 vCPU Β· 16 GB RAM Β· port 7860
# ─────────────────────────────────────────────
FROM python:3.11-slim
# System packages needed by faiss-cpu / pdf parsing / openpyxl
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
curl \
git \
&& rm -rf /var/lib/apt/lists/*
# HF Spaces requirement: run as uid 1000
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
WORKDIR $HOME/app
# Install uv
RUN pip install --no-cache-dir uv
# Copy dependency manifest & install
COPY --chown=user pyproject.toml .
RUN uv sync --no-dev
# Copy application source
COPY --chown=user chatbot_final.py .
# Create data directories (ephemeral on free tier; use HF Storage for persistence)
RUN mkdir -p /home/user/app/data/pdfs \
/home/user/app/data/embeddings \
/home/user/app/data/users
# Default env vars (can be overridden via HF Space Settings β†’ Variables / Secrets)
ENV PDF_STORE_DIR=/home/user/app/data/pdfs \
EMBEDDINGS_STORE_DIR=/home/user/app/data/embeddings \
USER_XL_PATH=/home/user/app/data/users/users.xlsx \
LLM_BACKEND=huggingface \
HF_MODEL_ID=mistralai/Mistral-7B-Instruct-v0.3
EXPOSE 7860
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
CMD curl --fail http://localhost:7860/_stcore/health || exit 1
CMD ["/home/user/app/.venv/bin/streamlit", "run", "chatbot_final.py", \
"--server.port=7860", \
"--server.address=0.0.0.0", \
"--server.headless=true"]