This page was machine-translated. Spotted a mistake?Help improve it.
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 недоступна, инструменты ИИ работают на CPU. В обоих случаях образ один и тот же.

Ускорение через интегрированные GPU Intel/AMD посредством VA-API, Quick Sync или OpenCL сегодня не поддерживается для инференса ИИ в SnapOtter. Проброс /dev/dri в контейнер может открыть render-устройство, но среда выполнения ИИ всё равно будет использовать CPU, если CUDA недоступна.

Тесты производительности

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

Производительность в прогретом состоянии

ИнструментCPUGPUУскорение
Удаление фона (u2net)2 415 мс879 мс2.7x
Удаление фона (isnet)2 457 мс1 137 мс2.2x
Увеличение 2x350 мс309 мс1.1x
Увеличение 4x910 мс310 мс2.9x
OCR (PaddleOCR)137 мс94 мс1.5x
Размытие лиц139 мс122 мс1.1x

Холодный старт (первый запрос после запуска контейнера)

ИнструментCPUGPUУскорение
Удаление фона22 286 мс4 792 мс4.7x
Увеличение 2x3 957 мс2 318 мс1.7x
OCR (PaddleOCR)1 469 мс1 090 мс1.3x

Проверка состояния CUDA

После первого запроса к ИИ административная конечная точка health сообщает о статусе 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"]
      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Последний релиз
1.11.0Точная версия
1.11Последний патч в 1.11.x
1Последний минорный в 1.x

Платформы

АрхитектураПоддержка GPUПримечания
linux/amd64NVIDIA CUDAПолное ускорение CUDA для инструментов ИИ
linux/arm64Только CPURaspberry Pi 4/5, Apple Silicon через Docker Desktop

Миграция с предыдущих тегов

Если вы использовали тег :cuda, переключитесь на :latest и сохраните --gpus all. Та же поддержка GPU, единый образ.

Ваши данные и настройки сохраняются в томах.