Solução da comunidade

O Frigate não consegue aceder ao Ollama no ZimaOS: correção da rede Docker

A Frigate GenAI setup could not initialize Ollama; the thread established that container-to-container reachability must be tested from the ZimaOS host first.

Se o Frigate e o Ollama forem executados em contentores Docker separados no mesmo anfitrião ZimaOS, localhost:11434 dentro do Frigate aponta para o próprio contentor do Frigate — não para o Ollama. Coloque ambos os serviços numa rede Docker partilhada e utilize o nome do serviço do Ollama, ou publique o Ollama num endereço do anfitrião a que o Frigate consiga aceder.

O tópico original não chegou a uma configuração final verificada, mas estabeleceu o caminho de diagnóstico correto: primeiro, confirme a acessibilidade da rede a partir do contentor do Frigate e, depois, resolva os problemas da configuração genai: do Frigate. A documentação atual do Frigate também exige um modelo compatível com visão para descrições de imagens/eventos.

Porque é que o localhost falha entre contentores

Cada contentor Docker normal tem o seu próprio espaço de nomes de rede. Dentro do Frigate:

http://localhost:11434

significa “a porta 11434 dentro do contentor do Frigate”. Não significa o anfitrião ZimaOS e não resolve automaticamente para o contentor do Ollama.

Melhor configuração: rede Docker partilhada

Coloque o Frigate e o Ollama na mesma rede Docker definida pelo utilizador e utilize um nome estável de serviço/contentor, como:

genai:
  provider: ollama
  base_url: http://ollama:11434
  model: qwen3-vl:4b

O atual guia de IA generativa do Frigate documenta o fornecedor Ollama e exige um modelo de visão adequado para as descrições de IA generativa.

Passo 1: verifique os contentores e as redes a partir do anfitrião ZimaOS

Execute isto no terminal do anfitrião ZimaOS, não dentro do Frigate:

docker ps --format 'table {.Names}	{.Image}	{.Networks}' | grep -Ei 'NAMES|frigate|ollama'

O utilizador do tópico original executou acidentalmente um comando Docker dentro do contentor do Frigate e recebeu docker: not found. Isso é esperado: normalmente, os contentores não incluem nem controlam a CLI do Docker do anfitrião.

Passo 2: teste o Ollama a partir do interior do Frigate

Depois de saber os nomes dos contentores e das redes, teste o caminho HTTP efetivo. A partir do anfitrião:

docker exec -it frigate sh
wget -qO- http://ollama:11434/api/tags

Se a resposta listar modelos do Ollama, a rede está a funcionar. Se não conseguir resolver ollama, é provável que os contentores não partilhem a mesma rede. Se resolver o nome, mas a ligação for recusada, verifique se o Ollama está a escutar e a aceitar ligações e confirme o estado da porta.

Alternativa: utilize o endereço IP do anfitrião ZimaOS

Se o Ollama publicar a porta 11434 no anfitrião, o Frigate pode utilizar um endereço acessível na rede local, como:

base_url: http://192.168.1.20:11434

Esta opção é simples, mas encaminha o tráfego através do anfitrião em vez de utilizar a descoberta de serviços do Docker. Certifique-se de que o Ollama está efetivamente a escutar numa interface acessível a partir do contentor do Frigate.

Utilize um modelo Ollama compatível com visão

A conectividade de rede, por si só, não é suficiente. A funcionalidade de IA generativa atual do Frigate envia contexto visual, pelo que o modelo configurado tem de suportar visão. Um modelo Ollama apenas de texto pode responder aos testes da API e, ainda assim, não ser adequado para descrições de eventos de câmaras.

Não utilize host.docker.internal em todo o lado

host.docker.internal é conveniente no Docker Desktop, mas não é garantido que funcione de forma idêntica em todos os anfitriões Docker Linux. No ZimaOS, uma rede definida pelo utilizador, juntamente com o nome do serviço, é geralmente mais portátil.

Verifique a configuração do Frigate depois de a rede funcionar

Só depois de /api/tags funcionar deve concentrar-se na indentação do YAML, no nome do fornecedor, no nome do modelo e nas definições da funcionalidade de IA generativa. Reinicie o Frigate e consulte os registos para verificar a inicialização do fornecedor.

O guia de redes Docker apresenta o modelo geral de funcionamento das redes de contentores.

Perguntas frequentes

Porque é que localhost:11434 não funciona a partir do Frigate?

Porque o localhost dentro do Frigate corresponde ao próprio contentor do Frigate, não ao contentor do Ollama.

Qual é o melhor URL para o Ollama?

Numa rede Docker partilhada, utilize o nome do serviço/contentor do Ollama, como http://ollama:11434.

Porque é que docker exec indica que docker não foi encontrado?

É provável que tenha executado a CLI do Docker dentro de um contentor. Execute os comandos de gestão do Docker no terminal do anfitrião ZimaOS.

Qualquer modelo Ollama pode funcionar com a IA generativa do Frigate?

Não. A documentação atual do Frigate indica que o fluxo de trabalho de IA generativa requer um modelo compatível com visão.