| |
| FROM python:3.13-slim |
|
|
| |
| WORKDIR /app |
|
|
| |
| ENV PYTHONUNBUFFERED=1 \ |
| PYTHONDONTWRITEBYTECODE=1 \ |
| GRADIO_SERVER_NAME="0.0.0.0" \ |
| GRADIO_SERVER_PORT=7860 \ |
| LLM_MODEL_NAME="google/gemma-2-2b-it" \ |
| LLM_TIMEOUT_SECONDS=90 \ |
| CHAT_LOG_DIR="/app/chats" \ |
| PIP_DEFAULT_TIMEOUT=100 \ |
| PIP_RETRIES=5 |
|
|
| |
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| build-essential \ |
| curl \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| COPY requirements.txt . |
|
|
| |
| RUN pip install --upgrade pip setuptools wheel && \ |
| pip install --no-cache-dir --default-timeout=100 --prefer-binary \ |
| -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cpu |
|
|
| |
| COPY app.py . |
| COPY src/ ./src/ |
| COPY XENO_Uganda_KnowledgeBase_Advisory.json ./ |
|
|
| |
| RUN mkdir -p /tmp/xeno_db /app/chats |
|
|
| |
| EXPOSE 7860 |
|
|
| |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ |
| CMD curl -f http://localhost:7860 || exit 1 |
|
|
| |
| CMD ["python", "app.py"] |
|
|