This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

Docker Image

SnapOtter được phân phối dưới dạng một image Docker duy nhất. Chạy image này một mình thì nó sẽ khởi động một PostgreSQL 17 và Redis nhúng trên giao diện loopback (chế độ nhúng); với môi trường production, hãy chạy nó cùng với các container PostgreSQL 17 và Redis 8 riêng biệt qua Compose. Image ứng dụng hoạt động trên mọi nền tảng.

Bắt đầu nhanh

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

Khi không đặt DATABASE_URL, image chạy ở chế độ nhúng: PostgreSQL và Redis khởi động bên trong container trên loopback, với toàn bộ dữ liệu nằm dưới volume SnapOtter-data. Đặt DATABASE_URLREDIS_URL (như stack Compose làm) để dùng các dịch vụ bên ngoài thay thế. Xem Cấu hình.

Tăng tốc NVIDIA CUDA

Image bao gồm hỗ trợ NVIDIA CUDA trên amd64. Nếu bạn có GPU NVIDIA đã cài NVIDIA Container Toolkit, hãy thêm --gpus all:

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

Image tự động phát hiện CUDA khi chạy. Nếu không có --gpus all, hoặc khi CUDA không khả dụng, các công cụ AI chạy trên CPU. Vẫn cùng một image trong cả hai trường hợp.

Tăng tốc iGPU của Intel/AMD thông qua VA-API, Quick Sync hoặc OpenCL hiện không được hỗ trợ cho suy luận AI của SnapOtter. Việc ánh xạ /dev/dri vào container có thể lộ thiết bị render, nhưng runtime AI vẫn sẽ dùng CPU trừ khi có CUDA.

Benchmark

Được kiểm thử trên NVIDIA RTX 4070 (12 GB VRAM) với một ảnh chân dung JPEG 572x1024.

Hiệu năng khi đã khởi động

Công cụCPUGPUTăng tốc
Xóa nền (u2net)2,415ms879ms2.7x
Xóa nền (isnet)2,457ms1,137ms2.2x
Phóng đại 2x350ms309ms1.1x
Phóng đại 4x910ms310ms2.9x
OCR (PaddleOCR)137ms94ms1.5x
Làm mờ khuôn mặt139ms122ms1.1x

Khởi động nguội (yêu cầu đầu tiên sau khi container khởi động)

Công cụCPUGPUTăng tốc
Xóa nền22,286ms4,792ms4.7x
Phóng đại 2x3,957ms2,318ms1.7x
OCR (PaddleOCR)1,469ms1,090ms1.3x

Kiểm tra tình trạng CUDA

Sau yêu cầu AI đầu tiên, endpoint kiểm tra tình trạng của admin sẽ báo cáo trạng thái GPU CUDA:

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

Docker Compose

Stack Compose đầy đủ bao gồm ứng dụng, PostgreSQL 17 và Redis 8. Xem Triển khai để có docker-compose.yml hoàn chỉnh. Một ví dụ tối giản:

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:

Để tăng tốc NVIDIA CUDA qua Docker Compose, hãy thêm phần deploy vào dịch vụ SnapOtter:

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

Ghim phiên bản

ThẻMô tả
latestBản phát hành mới nhất
1.11.0Phiên bản chính xác
1.11Bản vá mới nhất trong 1.11.x
1Bản minor mới nhất trong 1.x

Nền tảng

Kiến trúcHỗ trợ GPUGhi chú
linux/amd64NVIDIA CUDATăng tốc CUDA đầy đủ cho các công cụ AI
linux/arm64Chỉ CPURaspberry Pi 4/5, Apple Silicon qua Docker Desktop

Chuyển đổi từ các thẻ trước đó

Nếu bạn đang dùng thẻ :cuda, hãy chuyển sang :latest và giữ --gpus all. Cùng hỗ trợ GPU, image hợp nhất.

Dữ liệu và cài đặt của bạn được bảo toàn trong các volume.