vector-auditor / Dockerfile
AkshayM
Reduce uvicorn workers from 8 to 1 to prevent OOM on HF Spaces
3fb79c1
Raw
History Blame Contribute Delete
1.52 kB
FROM python:3.11-slim AS builder
RUN apt-get update -qq && apt-get install -y -qq --no-install-recommends \
build-essential \
poppler-utils \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY scripts/ scripts/
RUN python scripts/download_model.py || echo "WARNING: model pre-cache failed (will lazy-load at runtime)"
FROM python:3.11-slim
RUN apt-get update -qq && apt-get install -y -qq --no-install-recommends \
poppler-utils \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages
COPY --from=builder /usr/local/bin /usr/local/bin
COPY --from=builder /app/models models/
# Pre-downloaded HF cache for reranker (avoids runtime download)
ENV HF_HOME=/app/models/hf_cache \
HF_HUB_CACHE=/app/models/hf_cache/hub
COPY alembic.ini ./
COPY alembic ./alembic
COPY src/ src/
ENV PYTHONPATH=/app \
PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
PORT=7860
EXPOSE 7860
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:7860/health')" || exit 1
CMD alembic upgrade head || echo "alembic skipped (in-memory fallback)"; \
exec uvicorn src.api.main:app \
--host 0.0.0.0 \
--port 7860 \
--workers 1 \
--loop asyncio \
--http httptools \
--no-access-log