This page was machine-translated. Spotted a mistake?Help improve it.
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
OCR (PaddleOCR)137ms94ms1,5x
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 (PaddleOCR)1.469ms1.090ms1,3x

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
      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:

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
1.11.0Versão exata
1.11Último patch na 1.11.x
1Última versão menor na 1.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.