# Stage 1: Build dependencies
FROM python:3.12-slim AS builder

WORKDIR /build
RUN apt-get update && apt-get install -y --no-install-recommends build-essential && rm -rf /var/lib/apt/lists/*

COPY pyproject.toml .
COPY src/ src/

RUN pip install --no-cache-dir --prefix=/install .

# Stage 2: Runtime
FROM python:3.12-slim

WORKDIR /app

# Copy installed packages from builder
COPY --from=builder /install /usr/local

# Copy source (for any dynamic imports)
COPY src/ src/
COPY pyproject.toml .

# Create data directory
RUN mkdir -p data/index data/profiles plugins

# Non-root user
RUN useradd -m -r tagger && chown -R tagger:tagger /app
USER tagger

EXPOSE 8000

ENV TAGGER_API_HOST=0.0.0.0
ENV TAGGER_API_PORT=8000
ENV TAGGER_INDEX_DIR=/app/data/index
ENV TAGGER_DATA_DIR=/app/data
ENV TAGGER_PLUGINS_DIR=/app/plugins
ENV KMP_DUPLICATE_LIB_OK=TRUE

HEALTHCHECK --interval=30s --timeout=10s --retries=3 \
    CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/health')"

CMD ["article-tagger", "serve", "--host", "0.0.0.0", "--port", "8000"]
