IoBroker unter Docker auf der Synology DiskStation

Kurze Einleitung

Nachdem meine ioBroker-Installation mit der Zeit immer weiter gewachsen ist und damit auch immer ressourcenhungriger wurde, reichten mir RaspberryPi und Cubietruck bald nicht mehr aus. Ich brauchte eine neue, leistungsfähigere Lösung.

Zum Glück hatte ich mir kurze Zeit vorher bereits eine DiskStation 1515+ von Synology zugelegt um meinen alten Linux-Server (mit all seinen Datei- und Medien-Diensten, sowie dem TV-Server) abzulösen. Also kurzerhand den Arbeitsspeicher der DS auf 6 GB aufgerüstet und… ja, Problem. In der neuen Version 6 des DSM war die Installation von VirtualBox (welches ich auf meinem Server genutzt hatte) nicht mehr möglich. Man konnte also keinen virtuellen ioBroker Server auf der DS laufen lassen. Das Aus für meinen Virtualisierungsplan? Nein.

Eine kurze Recherche mit den Stichworten “Virtualisierung” und “Synology” später stieß ich auf das Projekt Docker. Docker ist eine Virtualisierungsplattform, welche einen etwas anderen Ansatz verfolgt als vmWare, VirtualBox oder MS Hyper-V. Unter Docker werden nicht mehr ganze virtuelle Server erstellt, sondern lediglich sogenannte Container, die alle notwendigen Daten enthalten um eine einzelne Anwendung oder einen einzigen Dienst zum Laufen zu bekommen und zur Nutzung bereitzustellen. Diese Container werden, teilweise bereits fertig konfiguriert, als Images zum Download bereitgestellt.

Hinweis: Weitere Infos zu Docker hier (docker.com) oder hier (Wikipedia)

Also habe ich mich ein wenig in das Thema eingelesen und ein paar Tests gemacht. Ein ioBroker-Docker-Image gab es zwar schon, allerdings hatte ich hier einige Probleme benötigte Pakete für einzelne Container nach zu installieren. Ich wollte etwas was sich leichter administrieren lässt, also näher an einer virtuellen Maschine ist. Beim Durchwühlen verschiedenster Docker-Tutorials stolperte ich irgendwann über das Debian-Image. Einige Tests später stand fest: Es verhält sich in etwa so, wie eine Debian-Installation (z.B. Raspbian) auf dem RaspberryPi. Nachdem ich dann noch verstanden hatte, wie das mit dem Dockerfile funktioniert, dachte ich mir: So ein Image erstellen kannst du auch.
Gesagt, getan. Hier probiert und da getestet und letztendlich das Resultat auf Github und im Docker Hub veröffentlicht.

Wer sich also für den Quellcode interessiert, der wird auf Github fündig. Wen nur das fertige Image interessiert, der ist im Docker Hub gut aufgehoben.

Nun Gut, da ich meine Bastelei nicht für mich behalten wollte, habe ich ein entsprechendes Thema im ioBroker-Forum erstellt. Leider ist so ein Thread nicht unbedingt zur Dokumentation einer solchen Lösung geeignet. Daher jetzt hier einmal die offizielle Anleitung zu meinem ioBroker-Docker-Image. Falls du Probleme hast, oder Unterstützung benötigst, nutze gerne die Kommentare oder den Thread im ioBroker-Forum. Ich lese beides. 🙂

Der Übersichtlichkeit halber habe ich meine Anleitung hier auf mehrere Seiten verteilt. Das Inhaltsverzeichnis befindet sich immer am Seitenanfang, aber das hast du ja sicher schon gesehen…

Überarbeitung am 10.12.2017

Aufgrund kleinerer Probleme mit dem Docker Image musste ich einige Änderungen vornehmen. Hierdurch hat sich auch das Tutorial geringfügig geändert. So sind zum Beispiel die Befehle „iobroker stop“ und „iobroker start“ nur noch begrenzt nutzbar. Weiterhin ist es ab sofort möglich verschiedene Versionen des Docker Images herunter zu laden. Entsprechende Hinweise zu den Veränderungen finden sich an der jeweiligen Stelle im Tutorial.

Überarbeitung am 21.08.2018

Aus den bisherigen Diskussionen und Kommentaren habe ich einen kleinen Troubleshooting-Guide erstellt der neben häufig auftretenden Fehlerbildern auch wichtiges Basiswissen zu ioBroker, Docker & Co beinhaltet. Das Troubleshooting habe ich als zusätzliche Seite an den Artikel angehängt und werde es bei Bedarf entsprechend erweitern.

Überarbeitung am 05.12.2018

Mit dem heutigen Update des Docker-Container-Images auf Version 2 wurde die verwendete Node-Version auf node8 angehoben. Auf Neuinstallationen hat dies keine Auswirkungen, wohl aber auf Updates bestehender Installationen von vor dem 05.12.2018. Nach dem Wechsel der Node-Version muss nämlich innerhalb des ioBrokers das Script „reinstall.sh“ ausgeführt werden, um die Installierten Adapter mit Node8 verwenden zu können. Mehr Informationen dazu gibt es in der offiziellen ioBroker Dokumentation.

Überarbeitung am 12.12.2018

Nachdem es in der Vergangenheit häufiger Verwirrung um den „tar“-Befehl gab, habe ich heute den entsprechenden Abschnitt einmal überarbeitet und den bösen Parameter „-P“ aus dem Spiel genommen. 🙂 Leider hat es mir dabei ein bisschen mein Beitragslayout zerschossen. Wer also seltsame Sonderzeichen an Stellen findet, wo diese nicht hin gehören, darf sich gerne mal bei mir melden. Danke!

About the author: André

André
Familienvater und bekennender Technik-Nerd. Beruflich unterwegs als Fachinformatiker für Systemintegration bei einem deutschen IT-Dienstleister. In der Freizeit begeisterter "Home-Automatisierer" bzw. "Smarthome-Bastler" und (zumindest bei schönem Wetter) gerne mit der Familie in verschiedenen Outdooraktivitäten unterwegs.

153
Hinterlasse einen Kommentar

avatar
10000
56 Comment threads
97 Thread replies
11 Followers
 
Most reacted comment
Hottest comment thread
58 Comment authors
MichaelAndréDanielDirkNils Recent comment authors
  Subscribe  
Benachrichtige mich zu:
Daniel
Gast
Daniel

Hallo Andre,
deine Anleitung ist super und hat mir im vergangenen Jahr perfekt geholfen um meinen ioBroker vom PI in den Docker Container umzuziehen. Nun würde ich gerne auf die Version 2 umsteigen, damit einige neue Adapter damit laufen. Leider klappt das nicht so wie gewünscht. Ich habe schon versucht aus den einzelnen Seiten meine Infos zu entnehmen, aber eine echte „Upgrade“ Anleitung wäre da sehr hilfreich. Gerade auf die Basis deiner Grundinstallation bezogen. Ich denke da werden einige danach suchen.
Gruß
Daniel

Dirk
Gast
Dirk

Erstmal LOB! Sieht nach einem gut gepflegten repo aus. werde iobroker mal testen und wollte es in docker realisieren. wechsel von fhem, mal schauen was das taugt.
Test: wird auf nen Raspberry erfolgen.

werde berichten

Grüße DIrk

Nils
Gast
Nils

Hallo Andre,

danke für die Ausführliche Anleitung.
Ich habe ein Problem mit dem Backup.
Dieses wird erstellt aber die Archiv Datei ist leer.
Das Script wird auch ohne Fehler abgearbeitet.

Hast du eine Idee?

Gruß Nils

Sascha
Gast
Sascha

Hallo Andre,
ich habe dein Tutorial durchgearbeitet. Alles klappt super. Tolle Arbeit !!!!
Mir bleibt eine Frage zur Backupwiederherstellung offen. Ich habe in deinem Tutorial den Part mit dem Umzug auf ein neues System ausgelassen, weil ich das nicht brauchte. Warum soll der weg des BAckup-Wiederherstellens so „umständlich“ sein.
Erst in den Transferordner dann in den Zielorder entpacken , das noch über Kommandozeile….
Denke ich gerade falsch oder kann ich nicht „einfach“ direkt in der Filestation vom Backup Order in den ioBroker Ordner entpacken (den wir ja auf die DS „ausgelagert“ haben) ?

Danke und Gruß!
Sascha

Marc
Gast
Marc

Hallo,
ich habe eine eigentlich generelle Frage. Ich habe eine DS1817+ mit 8GB und dort ist standardmäßig schon der Synology Virtual Machine Manager installiert, in dem ich auch eine WinVM laufen habe. Nun meine eigentliche Frage: Kann ich das Image für Docker auch direkt in die VM einbinden ? Ist die Synology VMM eine neuere Version von Docker, oder ist es etwas komplett anderes ?

Michael
Gast
Michael

Hi André, habe IoBroker auf einer DS2413+ laufen (2GB RAM). Das läuft total langsam und hängt sich ab und an auf. Gibt es eine Beschränkung was die Anzahl Prozesse/Instanzen angeht? Habe ich auf der DS was falsch konfiguriert?

Viele Grüße Micha