ioBroker Container Image – Übersicht
ioBroker Container Image
Ein rootless, Multi-Architektur-Container-Image für ioBroker, aufgebaut als schlankes Multi-Stage-Image auf dem offiziellen Node.js-LTS-Image mit der aktuell von ioBroker empfohlenen Version.
Diese Seite ist nur eine kurze deutschsprachige Zusammenfassung. Die vollständige und maßgebliche Dokumentation (auf Englisch) befindet sich im GitHub-Projekt FernetMenta/ioBroker.container-image. Für Details siehe den Abschnitt am Ende dieser Seite.
Hinweis: Dieses Projekt ist eine Überarbeitung von buanet/ioBroker.docker. Es baut auf den Ideen dieses weit verbreiteten ioBroker-Container-Images auf und gestaltet es rund um ein rootless, Multi-Architektur- und reconciliation-basiertes Design neu.
Das veröffentlichte Image ist über die GitHub Container Registry verfügbar:
ghcr.io/fernetmenta/iobroker:7.2.2
(Der Paketname unterscheidet sich bewusst vom Quell-Repository
ioBroker.container-image. Die Zahl 7.2.2 ist die gebündelte
js-controller-Version; sie dient hier als Beispiel für das aktuelle Release.)
Eigenschaften im Überblick
- Standardmäßig rootless. Läuft als Nicht-Root-Benutzer (uid/gid 1000) und unterstützt beliebige UIDs (OpenShift-Stil) über gruppenschreibbare Datenverzeichnisse mit GID 0. Das Node-Binary trägt keine Datei-Capabilities und läuft daher sauber unter rootless Docker, Podman und Kubernetes.
- Schlanker Multi-Stage-Build. Die Build-Toolchain und die
-dev-Header zum Kompilieren der nativen Module von ioBroker existieren nur in der Build-Stufe und landen nie im ausgelieferten Runtime-Image. - Multi-Architektur. Veröffentlicht als ein einziges Multi-Arch-Manifest für
linux/amd64undlinux/arm64. - Reconciliation-basierter Start. Das Daten-Volume ist die maßgebliche Quelle dafür, welche Adapter installiert sind. Beim Start gleicht der Container den installierten Adapter-Code entsprechend ab, initialisiert ein frisches Daten-Volume beim ersten Lauf und richtet den Admin-Adapter ein, sodass ein neuer Container mit funktionierender Setup-Oberfläche hochfährt.
- Eingebauter Health-Watchdog. Das Image prüft seine Gesundheit selbst
(js-controller-Status plus Messagebox-Round-Trip, mit Start-, Upgrade- und
Reconcile-Toleranz) und startet den Container bei anhaltendem Fehler neu. Das
funktioniert gleich unter Docker, Podman,
podman kube playund Kubernetes und lässt sich mitIOB_HEALTHCHECK_WATCHDOG=falseabschalten, wenn der Orchestrator/opt/scripts/healthcheck.shselbst ausführen soll. - tini als PID 1. Korrekte Signalweiterleitung und Zombie-Reaping.
Schnellstart
Der erste Start auf einem leeren Daten-Volume dauert einen Moment, da der Container ioBroker initialisiert und den Admin-Adapter installiert. Danach ist die Admin-Oberfläche auf Port 8081 erreichbar.
Docker (rootful)
docker run -d \
--name iobroker \
--user $(id -u):$(id -g) \
-p 8081:8081 \
-p 8082:8082 \
-v iobroker-data:/opt/iobroker/iobroker-data \
-v iobroker-log:/opt/iobroker/log \
ghcr.io/fernetmenta/iobroker:7.2.2
Podman (rootless)
podman run -d \
--name iobroker \
-p 8081:8081 \
-p 8082:8082 \
-v iobroker-data:/opt/iobroker/iobroker-data \
-v iobroker-log:/opt/iobroker/log \
ghcr.io/fernetmenta/iobroker:7.2.2
Anschließend http://localhost:8081 für die Admin-Oberfläche öffnen.
Nicht als Host-Root laufen lassen – aber „Host-Root” hängt von der Laufzeit ab. Die genauen Unterschiede zwischen rootful Docker/Podman und rootless Podman (inklusive wann
--usernötig ist und wann nicht) sind ausführlich in der englischen README beschrieben.
Ausführliche Dokumentation (englisch)
Diese Seite ist eine deutschsprachige Übersicht. Die detaillierte technische Dokumentation wird auf Englisch gepflegt und liegt im Repository. Für Details siehe:
- README (vollständige Projektübersicht)
- Dokumentationsindex
- Umgebungsvariablen-Referenz
- ioBroker aktualisieren (Upgrading)
- Backup wiederherstellen
- Image lokal bauen
- Rootless-Capabilities und Einschränkungen
- Volumes, Persistenz und Multihost
- Beispiel-Compose-Dateien
Projekt-Repository: FernetMenta/ioBroker.container-image · Lizenz siehe LICENSE.