# Переопределение photo-ai для работы на NVIDIA GPU. # Использование: # docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d --build photo-ai # # Требуется драйвер NVIDIA и NVIDIA Container Toolkit. GPU выдаётся контейнеру через CDI # (device_ids ниже соответствует спеку /etc/cdi/nvidia.yaml): этот путь не требует правки # /etc/docker/daemon.json и перезапуска демона. Если nvidia-runtime зарегистрирован в демоне # (nvidia-ctk runtime configure --runtime=docker), вместо CDI можно вернуть классический вид # резервирования: driver: nvidia, count: 1 — результат тот же. # TORCH_VARIANT=cu126, а не cu124: в индексе cu124 последний torch — 2.6.0, а cu126 даёт ровно # те же torch 2.14.0 / torchvision 0.29.0, что и CPU-образ, поэтому варианты сборки отличаются # только CUDA-библиотеками. # Образ тегируется отдельно (whatido-photo-ai:cu126), чтобы сборка GPU-варианта не перетирала # CPU-образ whatido-photo-ai:latest. # PHOTO_AI_DEVICE=cuda при недоступной CUDA не роняет сервис: app.py пишет WARN и работает # на CPU, /health при этом отвечает 200. services: photo-ai: image: whatido-photo-ai:cu126 build: args: TORCH_VARIANT: cu126 environment: PHOTO_AI_DEVICE: ${PHOTO_AI_DEVICE:-cuda} deploy: resources: reservations: devices: - driver: cdi device_ids: - nvidia.com/gpu=all capabilities: [gpu]