# Dockerfile for NEUROVAULT v0.3

FROM python:3.11-slim AS base

WORKDIR /app

# System dependencies for optional SQLCipher and NLP builds
RUN apt-get update && apt-get install -y --no-install-recommends \
    libsqlcipher-dev gcc g++ && \
    rm -rf /var/lib/apt/lists/*

COPY pyproject.toml README.md LICENSE ./
COPY src/ src/

RUN pip install --no-cache-dir .[full]

# Optional spaCy model used by hybrid NER when enabled
RUN python -m spacy download en_core_web_sm || true

# Create non-root runtime user
RUN useradd -m -s /bin/bash neurovault
USER neurovault

ENV NEUROVAULT_DATA_DIR=/home/neurovault/.neurovault

EXPOSE 8080 9473 9474 9475 8501

CMD ["neurovault", "daemon", "--foreground"]
