77 lines
2.1 KiB
Plaintext
77 lines
2.1 KiB
Plaintext
# DXA Quality Assessment - Docker Container (GPU / CUDA)
|
||
# Build: docker build -t dxa-quality .
|
||
# Run: docker run --gpus all -v /path/to/data:/data -p 8000:8000 dxa-quality
|
||
|
||
# Base image with GPU support
|
||
FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04
|
||
|
||
# Неинтерактивный режим для apt
|
||
ENV DEBIAN_FRONTEND=noninteractive
|
||
|
||
RUN apt-get update && apt-get install -y \
|
||
python3.10 \
|
||
python3-pip \
|
||
python3.10-dev \
|
||
python3.10-venv \
|
||
build-essential \
|
||
ninja-build \
|
||
libgl1-mesa-glx \
|
||
libglib2.0-0 \
|
||
libsm6 \
|
||
libxext6 \
|
||
libxrender1 \
|
||
libgomp1 \
|
||
&& rm -rf /var/lib/apt/lists/*
|
||
|
||
# Обновляем pip и ставим свежий meson (0.64.0+) — ДО всех Python-пакетов
|
||
RUN pip3 install --no-cache-dir --upgrade pip "meson>=0.64.0"
|
||
|
||
WORKDIR /app
|
||
|
||
# --- PyTorch под CUDA 11.8 (ставим отдельно, чтобы не тянулся CUDA 12.6) ---
|
||
RUN pip3 install --no-cache-dir \
|
||
torch==2.8.0 torchvision==0.23.0 \
|
||
--index-url https://download.pytorch.org/whl/cu118
|
||
|
||
# --- Остальные зависимости ---
|
||
# Ставим с явными ограничениями, чтобы pip разрешил конфликты
|
||
RUN pip3 install --no-cache-dir \
|
||
fastapi==0.128.8 \
|
||
"uvicorn[standard]==0.39.0" \
|
||
monai==1.5.2 \
|
||
TotalSegmentator==2.18.0 \
|
||
nibabel==5.3.3 \
|
||
pydicom==2.4.4 \
|
||
pydicom-seg==0.4.1 \
|
||
opencv-python-headless==4.11.0.86 \
|
||
scikit-learn==1.6.1 \
|
||
scipy==1.13.1 \
|
||
pandas==2.3.3 \
|
||
numpy==1.26.4 \
|
||
openpyxl==3.1.5 \
|
||
matplotlib==3.9.4 \
|
||
timm==1.0.29 \
|
||
python-multipart==0.0.20 \
|
||
pydantic==2.13.4 \
|
||
typer==0.23.2 \
|
||
click==8.2.1 \
|
||
huggingface_hub==1.8.0 \
|
||
safetensors==0.7.0 \
|
||
simpleitk==2.5.6 \
|
||
tqdm==4.70.0 \
|
||
rich==15.0.0 \
|
||
PyYAML==6.0.3
|
||
|
||
# Copy application code
|
||
COPY . .
|
||
RUN mkdir -p models
|
||
|
||
# Expose API port
|
||
EXPOSE 8000
|
||
|
||
# Environment variables
|
||
ENV PYTHONUNBUFFERED=1
|
||
ENV PYTHONPATH=/app
|
||
|
||
# Default command
|
||
CMD ["python3", "-m", "uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"] |