NEWS
Update iobroker als Docker?
-
Hello zusammen,
ich habe IOBroker als Docker-Container auf meiner NAS laufen, damals beim Installieren als :latest. Wie mache ich am besten die Updates auf die neuere Versionen von IOBroker so dass allse Konfiguraitonen, Skripte usw erhalten bleiben.
-
Dafür gibt es eine Anleitung
https://smarthome.buanet.de/2020/10/iobroker-docker-container-updates-upgrades/ -
@oliverio Ok, danke, werd ich ausprobieren.
-
Ich hab’s so gehandhabt , dass ich den alten Container deaktiviert, aber nicht gelöscht habe , falls was schiefgeht.
Nur so als Info -
@chrisham sagte in Update iobroker als Docker?:
IOBroker so dass allse Konfiguraitonen, Skripte usw erhalten bleiben.
Moin,
wieder eine simpel scheinende Frage, aber da gibt es viele unbeantwortete Fragen, die zuerst beantwortet werden müssen.
- wie hast Du den Container eingerichtet?
- mittels Portainer
- Docker Compose
- wie sieht Dein Container Environment aus?
- sind die
ioBroker
relevanten Daten in einem persistenten Laufwerk/Verzeichnis gespeichert?
4 Nutzt Du noch andere Dinge wie Datenbanken (influxDB, MySQL) oder Grafana, wenn ja wie sind die eingerichtet und wo?
Ohne diese Informationen, ist es meiner Meinung nach, nicht seriös zu sagen, mach das so oder so.
Ohne diese Information würde ich das so machen
- Portainer im Docker der NAS installieren und einrichten
- einen neuen
ioBroker
Container als Stack im Portainer anlegen und nur die Grundeinrichtung durchführen, nichts zusätzlich installieren, außer Du nutzt VIS, den Adapter dann auch installieren.- das ganze mittels Docker-Compose, hier ein Beispiel aus der offiziellen Doku https://hub.docker.com/r/buanet/iobroker
version: '2' services: iobroker: container_name: iobroker image: buanet/iobroker hostname: iobroker restart: always ports: - "8081:8081" volumes: - /volume1/docker/iobroker_data:/opt/iobroker
- im alten
ioBroker
Container mittelsBackitUp
ein Backup erstellen - Backup vom alten in den neuen transferieren
- Alten Container stoppen
- Im neuen den Restore des zuvor erstellten Backups durchführen
- warten
- warten
- warten
- ...
Das nur mal kurz zusammengefasst, je nachdem wie die ersten 4 Fragen beantwortet werden, kann sich das Vorgehen und/oder das Konzept danach verändern.
Wieder viel geschrieben, dabei war das doch eine ganz kurze Frage
VG
BerndP.S.: falls ich Dich abgeschreckt habe, das war nicht meine Absicht, ich wollte nur zum Nachdenken anregen und dass man sich mit der Materie beschäftigt.
- wie hast Du den Container eingerichtet?
-
@dp20eic Vielen Dank für diese Ergänzungen und genau diese Punkte waren eigentlich der Hintergrund meiner Frage: wie schaffe ich es, alle meine Konfiguraitonen, Skripte, Integrationen (andere Systeme wie genannt z.B. influxDB, Grafana,...) usw in mein Container-Update rüberzuretten. Und bevor ich diesen Schritt machen, möchte ich genau diese Punkte geklärt/beantwortet haben für mich, damit es keine Überraschungen gibt.
1.) Ich habe IOBroker Container einfach nur über die DSM-Weboberfläche eingerichtet, also kein Portainer und auch nichts direkt auf Linux-Ebene
2.) Innerhalb IOBroker:
a) da sehe ich v.a. die Blockly-Scripte: diese versioniere ich regelmäßig über ein eigenes Pythonscript auf anderem Laufwerk (auf NAS volume)
b) dann gibt es natürlich die ganzen Adapter-Instanzen mit ihren Konfigurationen, das möchte ich auch nicht mehr nochmals von vorne machen
c) zusätzliche Linux-Pakete (z.B.Asterisk Libraries): die habe ich in den IOBroker-Docker per Terminal reininstalliert. Das ist mir bewusst, dass ich das verlieren würde. Alternative wäre hier ein Multi-Host-Setup, das habe ich aber noch nicht umgesetzt.
d) was gibts sonst noch....?
3.) Ja, ich habe auch sowohl influxDB als auch Grafana in Verwendung, influxDB in separatem Docker und über Adapter mit IOBroker integriert. Grafana auch in separatem Docker und mit influxDB-Daten gefüttertMit diesen Information: würde dein Vorgehen immer noch die Vorzugslösung sein.
Es gibt seit DSM 7.2 ja ein neues Feature mit dem sog. Container-Manager (wohl was ähnliches wie Portainer), und dazu gibt es diese Anleitung zur Container-Updates: https://mariushosting.com/synology-how-to-update-containers-in-container-manager/
Bzgl. die bisherige Konfiguraiton in das Update rüberretten, das wäre ja bei deinem Vorgehen PUnkt 4. Backup vom alten in den neuen transferieren. Wie geht das genau?
Vielen Dank.
-
wenn du die von mir verlinkte anleitung gelesen hast,
dann hast du sicherlich verstanden, das du einen containerupdate bei iobroker nur dann machen musst, wenn du das containerbetriebssystem und/oder die verwendete node-version aktualisieren willst.alle anderen updates kannst du machen ohne den container neu zu generieren. daher die 3 anleitungs-abschnitte container, iobroker, adapter
wenn du tatsächlich den container neu generieren willst, dann ist das so wie wenn du iobroker auf einem neuen rechner komplett neu aufsetzt und dann muss man die dinge beachten, die @dp20eic geschrieben hat.
durch docker kannst du ja 2 container parallel halten und die migration schritt für schritt durchführen. beide dürfen halt nicht parallel laufen, sonst gibt es probleme mit den ports. -
@chrisham ich nutze immer die Option des Updates via Portainer. Durch einen simplen rebuild und "pull latest".
Wenn man mehrere Netzwerke via MacVLAN hat sollte man die IP allerdings per Router fest auf die Macadresse legen. Bei mir haben sonst 2 von 3 LANs im Container auf einmal andere IPs, da meine MACVlans mehr als eine Adresse vergeben. -
@toralt sagte in Update iobroker als Docker?:
Wenn man mehrere Netzwerke via MacVLAN hat sollte man die IP allerdings per Router fest auf die Macadresse legen. Bei mir haben sonst 2 von 3 LANs im Container auf einmal andere IPs, da meine MACVlans mehr als eine Adresse vergeben.
Beim Anlegen eines MacVLAN gibt man den IP-Range an, aus welchem die Container ihre IP-Adressen bekommen. Wenn sich diese Ranges überschneiden, dann hast du bei der Anlage der Netze einen Fehler gemacht.
-
Moin,
so vom Shopping mit Frauchen zurück und auch ein Ticket fürs Länderspiel am Samstag geschossen
Ich versuche mich mal an einer Aufdröselung:
@chrisham sagte in Update iobroker als Docker?:
1.) Ich habe IOBroker Container einfach nur über die DSM-Weboberfläche eingerichtet, also kein Portainer und auch nichts direkt auf Linux-Ebene
Ist ja erst einmal nicht verkehrt, wichtig ist halt, ob Du eigene Volumes angegeben hast, das ist der persistente Teil um Daten außerhalb vom Container zu speichern, z. B.:
2.) Innerhalb IOBroker:
a) da sehe ich v.a. die Blockly-Scripte: diese versioniere ich regelmäßig über ein eigenes Pythonscript auf anderem Laufwerk (auf NAS volume)
b) dann gibt es natürlich die ganzen Adapter-Instanzen mit ihren Konfigurationen, das möchte ich auch nicht mehr nochmals von vorne machen
c) zusätzliche Linux-Pakete (z.B.Asterisk Libraries): die habe ich in den IOBroker-Docker per Terminal reininstalliert. Das ist mir bewusst, dass ich das verlieren würde. Alternative wäre hier ein Multi-Host-Setup, das habe ich aber noch nicht umgesetzt.
d) was gibts sonst noch....?zu a. Das wird, wenn Du den
BackitUp
Adapter nutzt, mit ins Backup gesichert.
zu b. Auch das kommt ins Backup
zu c. das hast Du ja schon selbst erkannt, das geht Dir verloren.- was nur zum Teil stimmt, denn es gibt eine Variable, die beim Erstellen des Containers auch 3rd Party Software nachinstallieren kann, ob das in jedem Fall sinnvoll ist, sei mal dahin gestellt, steht aber auch alles in der Dokumentation.
3.) Ja, ich habe auch sowohl influxDB als auch Grafana in Verwendung, influxDB in separatem Docker und über Adapter mit IOBroker integriert. Grafana auch in separatem Docker und mit influxDB-Daten gefüttert
Da die in einem anderen Container liegen, sind die von der Migration des
ioBroker
Containers nicht betroffen, Du musst natürlich beachten, dass Du im neuen Container auch die passende Software zum Schreiben der Daten in dieinfluxDB
installiert hast, wenn esinfluxDB V 1.8
ist, muss auch das passende Paket im neuenioBroker
Container installiert sein, wenn esinfluxDB V2.x
ist, dann muss imioBroker
Container das Paketinfluxdb2-cli
installiert werden, zusätzlich brauchst Du auch noch die Alten Tokens, sicher ist sicher.Mit diesen Information: würde dein Vorgehen immer noch die Vorzugslösung sein.
Das hängt davon ab, ob das, was ich schreibe, böhmische Dörfer sind oder Du die Zusammenhänge verstehst, für mich ist das so recht simpel nachzuvollziehen
Es gibt seit DSM 7.2 ja ein neues Feature mit dem sog. Container-Manager (wohl was ähnliches wie Portainer), und dazu gibt es diese Anleitung zur Container-Updates: https://mariushosting.com/synology-how-to-update-containers-in-container-manager/
Ja, das ist eine Möglichkeit, die man auch versuchen kann, ohne gleich den Portainer zu installieren, das gute ist, man kann wirklich probieren, wenn es noch nicht passt, dann Löschen und neu machen, bis so ist wie man es haben möchte. Der
Container Manager
zeigt Dir dann auch an, wenn es ein neueres Container-Image gibt und Du kannst das dann auch recht komfortabel einspielen, immer unter der Prämisse, dass Du einen persistenten Datenbereich eingerichtet hast.Bzgl. die bisherige Konfiguraiton in das Update rüberretten, das wäre ja bei deinem Vorgehen PUnkt 4. Backup vom alten in den neuen transferieren. Wie geht das genau?
Also, wenn Du den
BackitUp
Adapter nutzt, dann werden einzelne Dateien im Pfad/opt/iobroker/backups abgelegt, diese Dateien musst Du mit
scp, sftp, what ever` vom alten Container in den neuen kopieren, wenn Du ein persistentes Volumen/Verzeichnis, z. B.: /volume1/docker/iobroker_backups angelegt hättest, und das ist im Container auf /opt/iobroker/backups/ gemappt, dann könntest Du einfach über die File Station die Dateien hin und her kopieren.
VG
Bernd