# Multi-stage Docker build for size optimization
FROM python:3.12-slim-bookworm AS builder

# Install build dependencies
RUN apt-get update && apt-get install -y \
    gcc \
    g++ \
    && rm -rf /var/lib/apt/lists/*

# Set environment variables
ENV PIP_CACHE_DIR="/tmp/.cache/pip" \
    PYTHONPATH="PYTHONPATH:."
ENV VIRTUAL_ENV=/app/venv
ENV PATH="$VIRTUAL_ENV/bin:$PATH"

# Set the working directory and copy requirements
WORKDIR /app
COPY requirements.txt /app/requirements.txt

# Install Python dependencies in virtual environment
RUN python -m venv venv
RUN venv/bin/pip install --upgrade pip
RUN venv/bin/pip install -r requirements.txt

# Production stage
FROM python:3.12-slim-bookworm AS production

# Install minimal runtime dependencies
RUN apt-get update && apt-get install -y \
    wget \
    coreutils \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get clean

# Add non-root user FIRST (before copying files)
RUN groupadd -r appuser && useradd -r -g appuser appuser

# Copy virtual environment from builder and set ownership immediately
COPY --from=builder --chown=appuser:appuser /app/venv /app/venv

# Copy application code with correct ownership
COPY --chown=appuser:appuser lib /app/lib
COPY --chown=appuser:appuser systems /app/systems
COPY --chown=appuser:appuser my_utils /app/my_utils
COPY --chown=appuser:appuser download_with_progress.py /app/download_with_progress.py
COPY --chown=appuser:appuser list_spacy_models.py /app/list_spacy_models.py
COPY --chown=appuser:appuser docker-entrypoint.sh /docker-entrypoint.sh

# Set environment variables
ENV VIRTUAL_ENV=/app/venv
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
ENV PYTHONPATH="PYTHONPATH:."

# spaCy processing configuration
ENV SPACY_USE_DEPENDENCIES="True"
ENV SPACY_USE_GERMALEMMA="True"
ENV SPACY_PARSE_TIMEOUT="30"
ENV SPACY_MAX_SENTENCE_LENGTH="500"
ENV SPACY_N_PROCESS="10"
ENV SPACY_BATCH_SIZE="2000"
ENV SPACY_CHUNK_SIZE="20000"

WORKDIR /app

# Create directories with correct ownership
RUN mkdir -p "/app/logs" "/app/tmp" "/local/models" && \
    chown -R appuser:appuser "/app/logs" "/app/tmp" "/local/models" && \
    chmod +x /docker-entrypoint.sh && \
    chmod +x /app/download_with_progress.py && \
    chmod +x /app/list_spacy_models.py

# Set temp directories to use app directory instead of system /tmp
ENV TMPDIR="/app/tmp"
ENV TEMP="/app/tmp"
ENV TMP="/app/tmp"

# Switch to non-root user
USER appuser

# Define the entry point
ENTRYPOINT ["/docker-entrypoint.sh"]
