Цю сторінку перекладено машинним способом. Помітили помилку?Допоможіть її покращити.
Skip to content

Docker-образ ​

SnapOtter постачається як єдиний Docker-образ. Запустіть його окремо, і він запустить вбудовані PostgreSQL 17 та Redis на інтерфейсі loopback (вбудований режим); для промислового використання запускайте його поряд з окремими контейнерами PostgreSQL 17 та Redis 8 за допомогою Compose. Образ застосунку працює на всіх платформах.

Швидкий старт ​

bash
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest

Без встановленого DATABASE_URL це запускається у вбудованому режимі: PostgreSQL та Redis стартують усередині контейнера на loopback, а всі дані зберігаються в томі SnapOtter-data. Встановіть DATABASE_URL та REDIS_URL (як це робить стек Compose), щоб натомість використовувати зовнішні сервіси. Див. Налаштування.

Прискорення NVIDIA CUDA ​

Образ включає підтримку NVIDIA CUDA на amd64. Якщо у вас є GPU NVIDIA зі встановленим NVIDIA Container Toolkit, додайте --gpus all:

bash
docker run -d --name SnapOtter --gpus all -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest

Образ автоматично виявляє CUDA під час виконання. Без --gpus all або коли CUDA недоступна, інструменти AI працюють на CPU. Образ той самий в обох випадках.

Прискорення iGPU Intel/AMD через VA-API, Quick Sync чи OpenCL наразі не підтримується для AI-інференсу SnapOtter. Прокидання /dev/dri у контейнер може відкрити доступ до render-пристрою, але AI-середовище виконання все одно використовуватиме CPU, доки CUDA недоступна.

Тести продуктивності ​

Протестовано на NVIDIA RTX 4070 (12 ГБ VRAM) з портретним JPEG 572x1024.

Продуктивність у прогрітому стані ​

ІнструментCPUGPUПрискорення
Видалення фону (u2net)2415 мс879 мс2.7x
Видалення фону (isnet)2457 мс1137 мс2.2x
Збільшення 2x350 мс309 мс1.1x
Збільшення 4x910 мс310 мс2.9x
Розмиття облич139 мс122 мс1.1x

Холодний старт (перший запит після запуску контейнера) ​

ІнструментCPUGPUПрискорення
Видалення фону22286 мс4792 мс4.7x
Збільшення 2x3957 мс2318 мс1.7x

OCR не входить до порівняння CUDA. Як вбудований рівень Tesseract, так і додаткові рівні RapidOCR/ONNX використовують CPU, у тому числі коли контейнер має доступ NVIDIA GPU.

Перевірка стану CUDA ​

Після першого AI-запиту адміністративний ендпоінт стану звітує про статус GPU CUDA:

GET /api/v1/admin/health
{"ai": {"gpu": true}}

Docker Compose ​

Повний стек Compose включає застосунок, PostgreSQL 17 та Redis 8. Див. Розгортання для повного docker-compose.yml. Мінімальний приклад:

yaml
services:
  SnapOtter:
    image: snapotter/snapotter:latest
    ports:
      - "1349:1349"
    volumes:
      - SnapOtter-data:/data
      - SnapOtter-workspace:/tmp/workspace
    environment:
      - DATABASE_URL=postgres://snapotter:snapotter@postgres:5432/snapotter
      - REDIS_URL=redis://redis:6379
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy
    restart: unless-stopped
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

  postgres:
    image: postgres:17-alpine
    environment:
      POSTGRES_USER: snapotter
      POSTGRES_PASSWORD: snapotter     # Змініть це для нелокальних розгортань
      POSTGRES_DB: snapotter
    volumes:
      - SnapOtter-pgdata:/var/lib/postgresql/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U snapotter -d snapotter"]
      interval: 10s
      timeout: 5s
      retries: 12

  redis:
    image: redis:8-alpine
    command: ["redis-server", "--maxmemory-policy", "noeviction", "--appendonly", "yes"]
    volumes:
      - SnapOtter-redisdata:/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 12

volumes:
  SnapOtter-data:
  SnapOtter-workspace:
  SnapOtter-pgdata:
  SnapOtter-redisdata:

Для прискорення NVIDIA CUDA через Docker Compose додайте секцію deploy до сервісу SnapOtter:

yaml
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

Закріплення версій ​

ТегОпис
latestОстанній випуск
2.2.0Точна версія
2.2Останній патч у 2.2.x
2Останній мінорний у 2.x

Платформи ​

АрхітектураПідтримка GPUПримітки
linux/amd64NVIDIA CUDAПовне прискорення CUDA для AI-інструментів
linux/arm64Лише CPURaspberry Pi 4/5, Apple Silicon через Docker Desktop

Міграція з попередніх тегів ​

Якщо ви використовували тег :cuda, перейдіть на :latest і залиште --gpus all. Та сама підтримка GPU, уніфікований образ.

Ваші дані та налаштування зберігаються в томах.