FROM python:3.11-slim

ARG VERSION=0.14.0.dev0
ARG PIP_EXTRA_INDEX_URL=""

ENV PYTHONUNBUFFERED=1
ENV PORT=8000
ENV SETUPTOOLS_SCM_PRETEND_VERSION=${VERSION}

RUN useradd -m -u 1000 cyborguser

WORKDIR /build
COPY . .

# Install CPU-only PyTorch first to avoid CUDA dependencies
RUN pip install --no-cache-dir torch --index-url https://download.pytorch.org/whl/cpu

RUN pip install --no-cache-dir \
    ${PIP_EXTRA_INDEX_URL:+--extra-index-url "$PIP_EXTRA_INDEX_URL"} \
    '.[embeddings]' && \
    rm -rf /build

# Create directory for CyborgDB data
RUN mkdir -p /home/cyborguser/.cyborgdb && \
    chown -R cyborguser:cyborguser /home/cyborguser/.cyborgdb

WORKDIR /app
USER cyborguser

EXPOSE 8000

HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
    CMD python -c "import urllib.request, os; urllib.request.urlopen(f'http://localhost:{os.environ.get(\"PORT\", 8000)}/v1/health')" || exit 1

CMD ["cyborgdb-service"]