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

Docker イメージ

SnapOtter は単一の Docker イメージとして提供されます。単独で実行すると、ループバックインターフェイス上で組み込みの PostgreSQL 17 と Redis を起動します(組み込みモード)。本番環境では、Compose を使って別々の PostgreSQL 17 と Redis 8 のコンテナと並行して実行してください。アプリケーションイメージはすべてのプラットフォームで動作します。

クイックスタート

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

DATABASE_URL を設定していない場合、これは組み込みモードで実行されます。PostgreSQL と Redis がコンテナ内のループバック上で起動し、すべてのデータは SnapOtter-data ボリューム配下に保存されます。外部サービスを使う場合は、(Compose スタックが行っているように)DATABASE_URLREDIS_URL を設定してください。設定 を参照してください。

NVIDIA CUDA アクセラレーション

イメージには amd64 上での NVIDIA CUDA サポートが含まれています。NVIDIA Container Toolkit をインストールした NVIDIA GPU を使用している場合は、--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 上で実行されます。どちらの場合も同じイメージです。

VA-API、Quick Sync、または OpenCL を通じた Intel/AMD の iGPU アクセラレーションは、現時点では SnapOtter の AI 推論には対応していません。/dev/dri をコンテナにマッピングすればレンダーデバイスを公開できますが、CUDA が利用可能でない限り、AI ランタイムは引き続き CPU を使用します。

ベンチマーク

572x1024 の JPEG ポートレートを使い、NVIDIA RTX 4070(12 GB VRAM)でテストしました。

ウォーム時の性能

ツールCPUGPU高速化
背景除去 (u2net)2,415ms879ms2.7x
背景除去 (isnet)2,457ms1,137ms2.2x
2x アップスケール350ms309ms1.1x
4x アップスケール910ms310ms2.9x
OCR (PaddleOCR)137ms94ms1.5x
顔ぼかし139ms122ms1.1x

コールドスタート(コンテナ起動後の最初のリクエスト)

ツールCPUGPU高速化
背景除去22,286ms4,792ms4.7x
2x アップスケール3,957ms2,318ms1.7x
OCR (PaddleOCR)1,469ms1,090ms1.3x

CUDA ヘルスチェック

最初の AI リクエストの後、管理者向けヘルスエンドポイントが CUDA GPU のステータスを報告します:

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:

Docker Compose 経由の NVIDIA CUDA アクセラレーションには、SnapOtter サービスに deploy セクションを追加してください:

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

バージョン固定

タグ説明
latest最新リリース
1.11.0正確なバージョン
1.111.11.x の最新パッチ
11.x の最新マイナー

プラットフォーム

アーキテクチャGPU サポート備考
linux/amd64NVIDIA CUDAAI ツールの完全な CUDA アクセラレーション
linux/arm64CPU のみRaspberry Pi 4/5、Docker Desktop 経由の Apple Silicon

以前のタグからの移行

:cuda タグを使用していた場合は、:latest に切り替えて --gpus all をそのまま使用してください。GPU サポートは同じで、統合されたイメージです。

データと設定はボリューム内に保持されます。