es ist nachvollziehbar, dass der Support unterschiedlichster Linux-Plattformen nicht wirkich umsetzbar ist. Da ich jedoch nicht Ubuntu einsetze sondern Debian oder teilweise Red Hat Derivate, musste eine Lösung her.
Die „Docker engine“ leistet hierbei hervorragende Dienste. Sowohl für die Entwicklung, als auch für die Distribution sind elegante Lösungswege vorhanden.Insbesondere lassen sich „Docker-Umgebungen“ auf nahezu allen Plattformen starten.
Für das Team hinter IP-Symcon eröffnet sich dadurch die Möglichkeit, bereits vorkonfigurierte Appliances verteilen zu können.
Ich würde gerne ein fertiges Image über die Docker Registry bereitstellen wollen. Darf ich hier die IP-Symcon Software mit hinzufügen? Oder ist diese nur „Testern“ vorbehalten? Somit könnte ggf. direkt ein Test-Image über Docker bezogen werden…
Solange wir die Public-Beta durchführen und die Dateien von uns öffentlich zum Download angeboten werden (also ohne vorher die Lizenz angeben zu müssen) sehe ich kein Problem. Sofern sich das in Zukunft mal ändern sollte, müssen wir ggf. eine andere Regelung finden.
Achtet bitte darauf, dass du nicht zufällig deinen Lizenzkey mit anbietest.
ich häng mich mal an diesen Thread.
Nachdem mein neuer Server unter Fedora 22 läuft, bin ich gerade dabei einige Anwendungen wie z.B. tvheadend und eben IPS in Docker-Container zu verpacken.
tvheadend als TV-Server mit 2 DVB-S2-Doppeltunern käuft schon problemlos im Container und jetzt habe ich mal mit IPS angefangen. Das erste Image findet ihr auf https://registry.hub.docker.com/u/blockmove/symcon/
wenn ihr docker bereits auf eurem System habe, dann erfolgt die Installation des Images mit
docker pull blockmove/symcon
Wie bereits weiter oben angemerkt sind die Daten im Container nicht persistent.
Daher mussen Verzeichnisse (Volumes) vom Host dem Container übergeben werden.
In meinem Fall handelt es sich hier um:
[ul]
[li]/etc/symcon[/li][li]/root[/li][li]/usr/share/symcon[/li][/ul]
Diese Verzeichnisse werden beim Start des Containers mit der Option -v übergeben
Das Durchreichen der Devices erfolgt mit der Option –device. Diese Option könnt ihr mehrfach aufrufen und so alle eure benötigten Devices dem Container verfügbar machen
Nähere Details findet ihr in der Docker Dokumentation.
Der Start des Containers zu Versuchszwecken kann so aussehen:
Am einfachsten startet ihr den Container einmal und stoppt ihn gleich danach.
Anschliessend kopiert ihr die Konfiguration in die entsprechenden Hostverzeichnisse.
Über Feedback würde ich mich freuen.
17.07.2015:
Ich hatte etwas Zeit und hab nun die Netwerk-Zugriffe (z.B. für Homematic-Status) zum Laufen gebracht.
Startet man docker run mit der Option –net=„host“ dann klappt es. Ein Übergeben der Ports ist nicht mehr notwendig.
05.07.2015:
Ich habe Port 5544 für Homematic hinzugefügt
Das Repository ist umgestellt auf „Automated Build“ und das Dockerfile nun verfügbar
Das Volume „/usr/share/symcon“ habe ich hinzugefügt
Bislang läuft bei mir Homematic ohne IPS. Hab es aber gerade mit meinem Docker-Image getestet. Das Einlesen der Teilnehmer über Homematic-Konfigurator klappt. Eine Schaltsteckdose kann ich anlegen und über die Test-Buttons auch schalten.
Die Homematic-Ports musste ich nicht extra mappen.
Nur um es deutlicher zu Beschreiben für HM.
IPS braucht 5544 eingehend. Der muss weitergeleitet werden, sonst geht der Rückkanal (Events wenn Geräte z.b. per Hand/CCU bedient werden) nicht.
Die beiden anderen sind aus IPS Sicht nur abgehend (IPS schaltet oder fragt Gerät ab). @Tobias
Kann somit eigentlich nur an der CCU-Seite liegen.
Michael
ich konnte den Fehler jetzt verifizieren, Homematic funktioniert.
Der Fehler der mich etwas verwirrt hat ist der bereits beschriebene bzgl. der Aktualisierung von Homematic Geräten.
Geräte werden geschaltet aber der Zustandwird nicht aktualisiert.
Ich hatte heute etwas Zeit und hab mich mit dem Homematic-Status beschäftigt … Nun klappt es
Startet man docker run mit der Option --net=„host“, dann funktionieren alle Zugriffe.
Super! IPSymcon läuft bei mir damit jetzt auf einer Synology im Docker Container.
Kleine Ergänzung noch zur Installation auf der Synology mit der Docker App:
Leider kennt die Synology App kein --net , --device und -i. Da muss ich die Geräte wohl übers Netzwerk reingeben
Das /docker-Verzeichnis ist ein Share, man darf hier nicht den physischen Pfad auf der Synology angeben.
Man muss natürlich über die Remote Konsole die Lizenz installieren und das remote Password setzen. Ich verwende zum setzen des Passwortes dieses Script:
#!/bin/bash
if [ -e /root/.symcon ]; then
echo "Enter new IPSymcon remote concole password:"
read -s PASS
B64=$(echo -n "$PASS" |base64)
#delete alt entry, if any
sed -i -e '/Password=/d' /root/.symcon
#set new entry
sed -i -e "$ a Password=${B64}" /root/.symcon
echo "finished, Please restart to activate!"
else
echo "/root/.symcon missed"
echo "please set license first via remote console connecting to port 3777"
echo "this will create /root/.symcon"
fi
Das kopiert man auf die synology in /docker/symcon/root
Ich habe auch Symcon unter Docker auf einer Synology laufen.
Wenn Du den Container das erste mal von Hand auf der Konsole erstellst nimmt er die Optionen --net und -i.
Bei mir sieht der Aufruf auf der Syno dann so aus:
Habe gestern meinen neuen Server bekommen und gleich ubuntu und docker installiert. Aus jucks - ich ging davon aus dass es sicherlich nichts davon gibt - habe ich nach ipsymcon und docker gegoogelt. Hammer!
Falls du mein Image (blockmove/symcon) verwendest, dann gibt es primär keine Möglichkeit ip-symcon im Container zu aktualisieren. IPS ist quasi statisch im Image.
Wenn ich im Forum lese, dass es eine neue Linux-Version von IPS gibt, dann erstelle ich ein neues Image.
Dieses kannst du dann bei dir aktualisieren. Ich weiss nicht ob es bei deinem Nas eine GUI dafür gibt, per Kommandozeile funktioniert dies mit „docker pull blockmove/symcon“
Deine Konfig bleibt erhalten … sofern du sie dem Container als Volume übergeben hast.
Auf Basis von Dieter’s image, habe ich mir ein eigenes Dockerfile geschrieben, da ich noch so einiges anderes darauf haben wollte. SFTP Server, python, apc Server und und und…
Source und Konfig sind im container bei mir und werden täglich oder bei Bedarf gebackuped. Sobald ich ein neues Image erstelle, kopiere ich die Sourcen wieder rein, wobei das Neu-Erstellen zur Zeit nicht notwendig ist. Das Image ist bei mir so aufgebaut, dass ich das update auf dem container vornehmen kann ohne ein neues Image zu schreiben. Wenn Ihr interesse habt, kann ich hier mein Docker-File posten.