Esta página foi traduzida automaticamente. Encontrou um erro?Ajude a melhorá-la.
Skip to content

Imagem Docker ​

O SnapOtter é distribuído como uma única imagem Docker. Execute-a sozinha e ela inicia um PostgreSQL 17 e um Redis embutidos na interface de loopback (modo embutido); para produção, execute-a ao lado de contêineres separados de PostgreSQL 17 e Redis 8 com o Compose. A imagem do app funciona em todas as plataformas.

Início rápido ​

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

Sem nenhum DATABASE_URL definido, isso roda em modo embutido: o PostgreSQL e o Redis iniciam dentro do contêiner no loopback, com todos os dados sob o volume SnapOtter-data. Defina DATABASE_URL e REDIS_URL (como a pilha do Compose faz) para usar serviços externos em vez disso. Veja Configuração.

Aceleração NVIDIA CUDA ​

A imagem inclui suporte a NVIDIA CUDA em amd64. Se você tem uma GPU NVIDIA com o NVIDIA Container Toolkit instalado, adicione --gpus all:

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

A imagem detecta automaticamente o CUDA em tempo de execução. Sem --gpus all, ou quando o CUDA não está disponível, as ferramentas de IA rodam na CPU. É a mesma imagem em ambos os casos.

Aceleração de iGPU Intel/AMD via VA-API, Quick Sync ou OpenCL não é suportada para inferência de IA do SnapOtter hoje. Mapear /dev/dri para dentro do contêiner pode expor o dispositivo de renderização, mas o runtime de IA ainda usará a CPU a menos que o CUDA esteja disponível.

Benchmarks ​

Testado em uma NVIDIA RTX 4070 (12 GB de VRAM) com um retrato JPEG de 572x1024.

Desempenho aquecido ​

FerramentaCPUGPUGanho de velocidade
Remoção de fundo (u2net)2.415ms879ms2,7x
Remoção de fundo (isnet)2.457ms1.137ms2,2x
Upscale 2x350ms309ms1,1x
Upscale 4x910ms310ms2,9x
Desfoque de rosto139ms122ms1,1x

Inicialização a frio (primeira requisição após o início do contêiner) ​

FerramentaCPUGPUGanho de velocidade
Remoção de fundo22.286ms4.792ms4,7x
Upscale 2x3.957ms2.318ms1,7x

OCR não está incluído na comparação CUDA. Tanto a camada Tesseract integrada quanto as camadas RapidOCR/ONNX opcionais usam CPU, inclusive quando o contêiner tem acesso NVIDIA GPU.

Verificação de integridade do CUDA ​

Após a primeira requisição de IA, o endpoint de integridade do administrador informa o status da GPU CUDA:

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

Docker Compose ​

A pilha completa do Compose inclui o app, o PostgreSQL 17 e o Redis 8. Veja Implantação para o docker-compose.yml completo. Um exemplo mínimo:

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     # Altere isso para implantações não locais
      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:

Para aceleração NVIDIA CUDA via Docker Compose, adicione a seção deploy ao serviço do SnapOtter:

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

Fixação de versão ​

TagDescrição
latestÚltima versão
2.2.0Versão exata
2.2Último patch na 2.2.x
2Última versão menor na 2.x

Plataformas ​

ArquiteturaSuporte a GPUNotas
linux/amd64NVIDIA CUDAAceleração CUDA completa para ferramentas de IA
linux/arm64Apenas CPURaspberry Pi 4/5, Apple Silicon via Docker Desktop

Migração a partir de tags anteriores ​

Se você estava usando a tag :cuda, mude para :latest e mantenha --gpus all. Mesmo suporte a GPU, imagem unificada.

Seus dados e configurações são preservados nos volumes.