SvaraSetu / Dockerfile
NoiwaDEX's picture
Deploy SvaraSetu Docker Space
146a075 verified
Raw
History Blame Contribute Delete
2.31 kB
# Hugging Face Spaces Docker SDK Image
FROM python:3.11-slim
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
PORT=7860 \
HOST=0.0.0.0 \
DATA_DIR=/app/data \
INDEX_DIR=/app/data/indexes \
PROCESSED_DIR=/app/data/corpus \
HF_HOME=/app/.cache/huggingface \
KMP_DUPLICATE_LIB_OK=TRUE \
OMP_NUM_THREADS=1 \
ONNX_NUM_THREADS=1 \
ALLOW_NETWORK_CALLS_IN_PIPELINE=false \
USE_GEMINI_GENERATION=true
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
curl \
git \
ffmpeg \
libsndfile1 \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir -r requirements.txt
RUN python -c "from transformers import AutoTokenizer, AutoModel; from huggingface_hub import snapshot_download; AutoTokenizer.from_pretrained('intfloat/multilingual-e5-small'); AutoModel.from_pretrained('intfloat/multilingual-e5-small'); snapshot_download('prompt-security/Prompt-Guard-86M_onnx', allow_patterns=['model.onnx', 'tokenizer.json', 'tokenizer_config.json', 'special_tokens_map.json'])"
COPY svarasetu/ ./svarasetu/
COPY app.py .
COPY data/ ./data/
COPY tests/ ./tests/
COPY docs/ ./docs/
ARG SVARASETU_ASSETS_REPO=NoiwaDEX/SvaraSetu-assets
ARG SVARASETU_ASSETS_REVISION=b1138003b37d96e38371817b4555de1672721955
RUN python -c "from huggingface_hub import snapshot_download; snapshot_download('${SVARASETU_ASSETS_REPO}', revision='${SVARASETU_ASSETS_REVISION}', allow_patterns=['parts/svarasetu-assets.part-*'], local_dir='/tmp/svarasetu-assets')" && \
cat /tmp/svarasetu-assets/parts/svarasetu-assets.part-* > /tmp/svarasetu-assets.tar.gz && \
echo "9e18d3108dae51bd580d12bf5e947d60bda9bcf9fe9d4f614a0671ebf67b499e /tmp/svarasetu-assets.tar.gz" | sha256sum -c - && \
tar -xzf /tmp/svarasetu-assets.tar.gz -C /app && \
rm -rf /tmp/svarasetu-assets /tmp/svarasetu-assets.tar.gz
RUN useradd -m -u 1000 user && \
chown -R user:user /app
USER user
EXPOSE 7860
HEALTHCHECK --interval=30s --timeout=5s --start-period=90s --retries=3 \
CMD curl -fsS http://127.0.0.1:7860/ready || exit 1
CMD ["uvicorn", "svarasetu.serve:app", "--host", "0.0.0.0", "--port", "7860"]