NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@thomas-braun Ich habe mich hieran gehalten:
https://smarthome.buanet.de/2020/10/iobroker-docker-container-updates-upgrades/Und iob diag zeigt jetzt auch keine pending OS updates mehr an:
======================= SUMMARY ======================= v.2023-06-20 model name : Intel(R) Celeron(R) J4005 CPU @ 2.00GHz Kernel : x86_64 Userland : amd64 Docker : v6.1.0 Installation: Docker Kernel: x86_64 Userland: amd64 Timezone: Etc/UTC User-ID: 0 X-Server: false Pending OS-Updates: 0 Pending iob updates: 6 Nodejs-Installation: /usr/bin/nodejs v14.21.3 /usr/bin/node v14.21.3 /usr/bin/npm 6.14.18 /usr/bin/npx 6.14.18 Recommended versions are nodejs 18.x.y and npm 9.x.y Your nodejs installation is correct MEMORY: total used free shared buff/cache available Mem: 15G 5.8G 373M 761M 9.0G 8.6G Swap: 2.0G 2.0M 2.0G Total: 17G 5.8G 2.4G Active iob-Instances: 22 Active repo(s): stable ioBroker Core: js-controller 4.0.21 admin 6.3.5 ioBroker Status: iobroker is running on this host. Objects type: jsonl States type: jsonl Status admin and web instance: + system.adapter.admin.0 : admin : iobroker - enabled, port: 8091, bind: 0.0.0.0, run as: admin + system.adapter.web.0 : web : iobroker - enabled, port: 8082, bind: 0.0.0.0, run as: admin Objects: 3494 States: 2857 Size of iob-Database: 6.5M /opt/iobroker/iobroker-data/objects.jsonl 3.1M /opt/iobroker/iobroker-data/states.jsonl =================== END OF SUMMARY ====================
-
@bambulko
Node 14 und NPM 6 sind steinalt.Recommended versions are nodejs 18.x.y and npm 9.x.y
Wann hast Du denn den Container aktualisiert?
-
@thomas-braun sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
So geht das nicht in Containern.
Eigentlich doch.
Aber er muss erst das drum rum aktualisieren. also den container an sich.buanet hat im container nur das betriebssystem und node + evtl weitere notwendige pakete definiert.
die ganze iobroker installation erfolgt in einem sogenannten volume, der gewissermaßen ausserhalb des container images liegt.
daher kann man auch das image aktualisieren ohne die volatilen daten (=volume = iobroker installation) zu verlieren. -
@codierknecht Hmm, wenn man diers Anleitung folgt, werden genau diese Versionen installiert:
https://docs.buanet.de/iobroker-docker-image/docs/
EDIT: Oh, ich sehe gerade, dass man mit 'latest' wohl eine uralte Version installiert. Warum auch immer.
-
@bambulko sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
https://smarthome.buanet.de/2020/10/iobroker-docker-container-updates-upgrades/
-
zunächst, ganz dringend, du machst ein backup deiner iobroker installation (backitup adapter)
-
als nächstes am besten alle adapter gemäß dem stable repository im iobroker aktualisieren
-
dann kannst du als nächstes den container aktualisieren. dieser enthält node+betriebssystem
mit einem aktualisierten container hast du dann auch das aktuellste node
(das muss man nicht bei jedem mal machen, aber wenn die iobroker hauptversionen sich ändern, dann auf jeden fall)
Beschreibung ist ebenfalls anhand portainer in deinem link enthalten -
wenn du das geschafft hast und dein iobroker noch läuft, dann kannst du
den iobroker selbst aktualisieren. so wie du es da oben gemacht hast. aber ich glaube es gibt mittlerweile eine maintanance von buanet funktion, die dir das etwas automatisiert macht. -
dann nochmal nach den adaptern schauen, da sich durch die neue iobroker version ggfs einige adapter nochmal aktualisieren müssen
hast du portainer oder etwas anderes?
-
-
@bambulko sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Oh, ich sehe gerade, dass man mit 'latest' wohl eine uralte Version installiert. Warum auch immer.
Eigentlich erhälst Du mit "latest" das allerneueste Image.
Das kann sich aber noch in Entwicklung befinden und wird daher nicht empfohlen.Ich hatte das bis zum Wechsel auf den NUC immer mit den Bordmitteln der Synology gemacht.
Genau so, wie ich es oben beschrieben habe.
Dauert eben eine ganze Weile, bis das Startscript alle Adapter installiert hat. Aber nach 1-2 Stunden lief wieder alles. -
@oliverio Danke. Nein Portainer habe ich noch nie verwendet. Und Backitup funktioniert auch nicht mehr. Es bleibt einfach rot, wenn ich es starte. Allerdings habe ich gestern noch ein Backup gemacht.
-
@bambulko
na das backup von gestern reicht ja. also ein backup mit dem backitup adapter?dann kannst du ja direkt den container aktualisieren.
da latest nicht empfohlen wird erzeugst du am besten einen neuen container, wie wenn du frisch anfangen würdest.
wenn der dann läuft, dann kannst du dein backup mit dem backitup-adapter wieder einspielen. dann bist auch schon fertig wenn es keine weiteren probleme gibt -
@oliverio Das backup habe ich mit iobroker backup gemacht.
Muss ich den alten Container dafür erst löschen? -
nein, erst mal behalten. aber ausschalten oder stoppen.
habe keine syno, deswegen weiß ich nicht genau wie die funktionen sich nennen.
du kannst auch immer nur einen den beiden containern dann laufen lassen, da sich ansonsten die ports gegenseitig sperren.
wenn der neue container dann mit eingespieltem backup läuft dann kannst den alten löschen. -
-
@codierknecht Um einen neuen Container zu erzeugen, musste ich einen anderen Namen verwenden. Ich habe jetzt iobroker2 benutzt. Jetzt habe ich auf dem Rechner einmal unter /docker/iobroker die ganzen alten Sachen, und ein neues Verzeichnis /docker/iobroker2, welches aber leer ist.
Wie kann ich das alte Verzeichnis mit der neuen Version verwenden? -
Um einen neuen Container zu erzeugen, musste ich einen anderen Namen verwenden
Stimmt - da ist die Synology etwas zickig. Darum habe ich meinen Container immer gleich gelöscht.
Jetzt habe ich auf dem Rechner einmal unter /docker/iobroker die ganzen alten Sachen, und ein neues Verzeichnis /docker/iobroker2, welches aber leer ist.
Stoppe mal den Container und mounte das "alte" Verzeichnis.
Mein Container läuft zwar nicht mehr, aber vorhanden ist er noch.
Im Host-Mode, damit ich nicht immer wieder Ports nachtragen musste. -
@codierknecht Wie kann ich denn in einem existierenden container ein mount machen? Oder muss ich einen neuen erstellen?
-
Hey,
hier mal der Auszug aus meiner (Update-)Dokumentation:
-
Info: Update wird manuell durchgeführt, weil kein Latest Image verwendet werden soll.
-
Dockerhub auf neue Version prüfen: https://hub.docker.com/r/buanet/iobroker
-
Synology NAS Oberfläche aufrufen
-
Systemsteuerung -> Aufgabenplaner aufrufen
-
ioBroker_Install Script bearbeiten (siehe unten)
-
- Container Name auf zu aktualisierende Versionsnummer updaten
-
- Container Image unten auf zu aktualisierende Versionsnummer anpassen
-
Container stoppen
-
Inhalt von /volume1/docker/iobroker nach /volume1/backup/ioBroker-Backup kopieren
-
Script ausführen
-
Warten bis Container läuft
-
Seite aufrufen: http://nas.fritz.box:8081/
-
Prüfen, ob alle Adapter laufen
-
Wenn alles zuverlässig läuft, dann
-
- Backup löschen (es gibt ja noch das vom Backup NAS)
-
- Altes Image löschen
-
- Alten Container löschen
ioBroker Installscript
docker run -d --name=ioBroker-8.1.0 \ -p 502:502 \ -p 1502:1502 \ -p 1880:1880 \ -p 1883:1883 \ -p 2001:2001 \ -p 8081:8081 \ -p 8082:8082 \ -p 8282:8282 \ -p 8088:8088 \ -p 8284:8284 \ -v /volume1/docker/iobroker:/opt/iobroker \ --restart always \ buanet/iobroker:v8.1.0
-
-
@bambulko
Das geht problemlos
-
@codierknecht seufz
Da das Verzeichnis /docker/iobroker nicht als Volume bei 'docker volume ls' angezeigt wird, habe ich einfach ein volume erzeugt, und dann den ganzen Inhalt von /docker/iobroker auf dieses Volume kopiert.
Dann habe ich ein neues Image von Iobroker installiert, welches dieses Volume verwendet. Das ist dann sogar gestartet. Mein ganzer Kram war auch darin. So weit so gut. ABER: das Javascript-adapter läuft immer noch nicht. Aber wenigstens scheint der Rest zu funktionieren.
-
dann zeig nochmal die Fehlermeldungen aus dem neuen container
-
hier standen falsche Informationen
-
@oliverio So, jetzt hatte ich natürlich auch noch eine Panne mit dem Auto......
Wenn ich jetzt ein neues Image erzeuge, kann ich dann im nachhinein noch neue Ports zufügen? Aktuell habe ich folgende:
sudo docker port iobroker3 1882/tcp -> 0.0.0.0:1882 1882/tcp -> [::]:1882 8081/tcp -> 0.0.0.0:8081 8081/tcp -> [::]:8081 8081/udp -> 0.0.0.0:8081 8081/udp -> [::]:8081 8082/tcp -> 0.0.0.0:8082 8082/tcp -> [::]:8082 8083/tcp -> 0.0.0.0:8083 8083/tcp -> [::]:8083 8091/tcp -> 0.0.0.0:8091 8091/tcp -> [::]:8091
Ich weiss aber ehrlichgesagt nicht mehr genau wofür die alle waren.