Community-Lösung

Frigate kann Ollama unter ZimaOS nicht erreichen: Docker-Netzwerkfehler beheben

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

Wenn Frigate und Ollama in separaten Docker-Containern auf demselben ZimaOS-Host laufen, verweist localhost:11434 innerhalb von Frigate auf den Frigate-Container – nicht auf Ollama. Füge beide Dienste einem gemeinsamen Docker-Netzwerk hinzu und verwende den Dienstnamen von Ollama, oder veröffentliche Ollama unter einer Host-Adresse, die Frigate erreichen kann.

Der ursprüngliche Thread kam nie zu einer verifizierten endgültigen Konfiguration, zeigte aber den richtigen Diagnoseweg auf: Zuerst die Netzwerkverbindung vom Frigate-Container aus überprüfen und anschließend die genai:-Konfiguration von Frigate untersuchen. Die aktuelle Frigate-Dokumentation erfordert außerdem ein visionsfähiges Modell für Bild- und Ereignisbeschreibungen.

Warum localhost zwischen Containern nicht funktioniert

Jeder normale Docker-Container verfügt über einen eigenen Netzwerk-Namespace. Innerhalb von Frigate bedeutet:

http://localhost:11434

„Port 11434 innerhalb des Frigate-Containers“. Gemeint ist weder der ZimaOS-Host, noch wird dadurch automatisch der Ollama-Container aufgelöst.

Beste Einrichtung: Gemeinsames Docker-Netzwerk

Füge Frigate und Ollama demselben benutzerdefinierten Docker-Netzwerk hinzu und verwende einen stabilen Dienst- oder Containernamen wie:

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

Der aktuelle Frigate-Leitfaden zu generativer KI dokumentiert den Ollama-Provider und erfordert ein geeignetes Visionsmodell für GenAI-Beschreibungen.

Schritt 1: Container und Netzwerke auf dem ZimaOS-Host prüfen

Führe dies im Terminal des ZimaOS-Hosts aus, nicht innerhalb von Frigate:

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

Der Benutzer im ursprünglichen Thread führte versehentlich einen Docker-Befehl innerhalb des Frigate-Containers aus und erhielt docker: not found. Das ist erwartbar: Container enthalten normalerweise weder die Docker-CLI des Hosts noch können sie diese steuern.

Schritt 2: Ollama innerhalb von Frigate testen

Sobald die Containernamen und Netzwerke bekannt sind, teste den tatsächlichen HTTP-Pfad. Führe auf dem Host Folgendes aus:

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

Wenn die Antwort Ollama-Modelle auflistet, funktioniert die Netzwerkverbindung. Wenn ollama nicht aufgelöst werden kann, verwenden die Container wahrscheinlich nicht dasselbe Netzwerk. Wird der Name aufgelöst, aber die Verbindung abgelehnt, überprüfe, ob Ollama lauscht und an welche Schnittstelle es gebunden ist, sowie den Portstatus.

Alternative: Die IP-Adresse des ZimaOS-Hosts verwenden

Wenn Ollama den Port 11434 auf dem Host veröffentlicht, kann Frigate eine im LAN erreichbare Host-Adresse verwenden, zum Beispiel:

base_url: http://192.168.1.20:11434

Das ist unkompliziert, leitet den Datenverkehr jedoch über den Host weiter, statt die Docker-Diensterkennung zu verwenden. Stelle sicher, dass Ollama tatsächlich an einer vom Frigate-Container erreichbaren Schnittstelle lauscht.

Ein visionsfähiges Ollama-Modell verwenden

Eine funktionierende Netzwerkverbindung allein reicht nicht aus. Die aktuelle GenAI-Funktion von Frigate übermittelt visuelle Zusammenhänge, daher muss das konfigurierte Modell Vision unterstützen. Ein reines Textmodell von Ollama kann auf API-Tests antworten, ist aber dennoch möglicherweise nicht für die Beschreibung von Kameraereignissen geeignet.

host.docker.internal nicht überall verwenden

host.docker.internal ist auf Docker Desktop praktisch, funktioniert aber nicht garantiert auf jedem Linux-Docker-Host identisch. Ein gemeinsames benutzerdefiniertes Netzwerk mit Dienstnamen ist unter ZimaOS in der Regel portabler.

Die Frigate-Konfiguration überprüfen, sobald das Netzwerk funktioniert

Erst wenn /api/tags erfolgreich antwortet, solltest du dich auf YAML-Einrückung, Providernamen, Modellnamen und die GenAI-Funktionseinstellungen konzentrieren. Starte Frigate neu und prüfe die Protokolle auf die Initialisierung des Providers.

Der Leitfaden zur Docker-Netzwerkverwaltung erläutert das allgemeine Modell der Container-Vernetzung.

FAQ

Warum funktioniert localhost:11434 in Frigate nicht?

Weil localhost innerhalb von Frigate auf den Frigate-Container selbst verweist, nicht auf den Ollama-Container.

Welche Ollama-URL ist am besten geeignet?

Verwende in einem gemeinsamen Docker-Netzwerk den Dienst- oder Containernamen von Ollama, zum Beispiel http://ollama:11434.

Warum meldet docker exec, dass docker nicht gefunden wurde?

Du hast die Docker-CLI wahrscheinlich innerhalb eines Containers ausgeführt. Führe Docker-Verwaltungsbefehle im Terminal des ZimaOS-Hosts aus.

Funktioniert jedes Ollama-Modell mit Frigate GenAI?

Nein. Laut der aktuellen Frigate-Dokumentation benötigt der GenAI-Workflow ein visionsfähiges Modell.