# DXA Quality Assessment - Docker Container (CPU only, Python 3.11)
# Build: docker build -t dxa-quality .
# Run: docker run -v /path/to/data:/data -p 8000:8000 dxa-quality

FROM python:3.11-slim AS builder

RUN apt-get update && apt-get install -y \
    build-essential \
    ninja-build \
    libgl1 \
    libglib2.0-0 \
    libsm6 \
    libxext6 \
    libxrender1 \
    libgomp1 \
    && rm -rf /var/lib/apt/lists/*

# Свежий meson (0.64.0+) — ДО установки Python-пакетов
RUN pip3 install --no-cache-dir "meson>=0.64.0"

WORKDIR /app

# Устанавливаем пакеты без жёстких пинов — pip сам разрешит зависимости
RUN pip3 install --no-cache-dir \
    fastapi uvicorn torch torchvision monai TotalSegmentator \
    nibabel pydicom pydicom-seg opencv-python-headless \
    scikit-learn scipy pandas numpy openpyxl matplotlib timm \
    python-multipart

COPY . .
RUN mkdir -p models

EXPOSE 8000

ENV PYTHONUNBUFFERED=1
ENV PYTHONPATH=/app

CMD ["python3", "-m", "uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"]