Docker Image pipp37/fhem_jessie Online

Begonnen von pipp37, 22 März 2016, 10:42:17

Vorheriges Thema - Nächstes Thema

wopl

Hallo somansch,
habe in den letzten Tagen auch ein wenig Mühe gehabt, FHEM unter Docker lauffähig zu bekommen. Jetzt wirds so langsam.

ZitatIch plane, einen CUL einzusetzen

Der Trick hier: Du mußt auf dem QNAP den cdc-acm Treiber aktivieren (depmod cdc-acm). Dann taucht für den CUL auch /dev/ttyACM0 auf, den Du dann im Container wie gewohnt ansprechen kannst. (siehe mein vorheriger Beitrag)

Bei Bedarf gerne mehr Info.
Gruß Wolfram
Haussteuerung mit 300 Devices, Kopplung mit Wago SPS, InfluxDB (Grafana), HomeMatic, Tinkerforge (Fensterkontakte), SmartMeter, Heizungsüberwachung/-logging... Installation in QNAP NAS Docker container vollautomatisiert mit Ansible und GITlab

DS_Starter

Hallo zusammen,

jetzt habe ich mich auch mal an Docker rangewagt und dein Image auf dem Docker meiner Synology 415+ installiert. Das hat soweit problemlos geklappt.
USB-Devices sind noch nicht eingebunden. Ich spiele und teste etwas herum.

Das Erste was mir auffiel ist foilgendes. Habe "update" ausgeführt und alle Module aktualisiert . Hat geklappt.
Stoppe ich aber den Container und starte ihn wieder sind die Aktualisierungen wieder weg.

Wie gesagt, ich taste mich erst an diese Technologie heran, setze bisher phpVirtualBox ein.
Was muß man denn tun damit Änderungen nach einem Restart erhalten bleiben ?

Probiert habe ich es bereits mit "docker commit <Signatur>  pipp37/fhem_jessie:latest" nach dem update, hat aber nicht geholfen.

viele Grüße
Heiko


ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Hallo zusammen,

kurzes Update.
Durch das Mounten eines auf der Synology DS befindlichen FHEM-Verzeichnisses nach /opt/fhem konnte ich nun fhem update fahren und nach dem Container-Restart auch erhalten.
Es bleiben  ebenfalls zusätzlich installierte perl Pakete nach einem Containerrestart erhalten wenn "docker commit" ausgeführt wurde (so sollte es auch sein). Warum das für FHEM nicht klappen wollte, konnte ich bisher nicht ergründen.
Nun bin ich auch darauf gestoßen dass Synology-docker zumindest im DSM 5.2 die --net Option nicht unterstützt und ich somit nicht in der Lage bin Multicastpakete (SMAEM) an Docker weiterzureichen. Damit ist Docker für mich, zumindest solange ich keine Lösung für dieses Problem gefunden habe, keine vollwertige Ablösung für mein Virtualbox.
Vielleicht ist es mit DSM 6 weiterentwickelt. Allerdings kann ich erst updaten wenn Virtualbox kompatibel mit der neuesten 6er Version ist, momentan nicht.

viele Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Hallo zusammen,

die Sache mit dem Multicast lässt mir doch keine Ruhe weil ich Docker inzwischen mit FHEM ganz gut als Test laufen habe, nur dieser Punkt ist momentan noch offen.

Also nochmal die Frage in die Runde ob jemand eine Möglichkeit kennt Multicast-Pakete in einen Dockercontainer weiterzuleiten und es schon realisiert hat. (Synology unterstützt den net-Parameter nicht!).

Ganz allgemein scheint Multicast-Weiterleitung wohl noch eine Baustelle bei Docker zu sein wenn man diesebezüglich etwas im Netz rumsucht. Aber vielleicht habe ich den richtigen Einstiegspunkt auch nicht gefunden.

viele Grüße und ein schönes WE
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Chris8888

Zitat von: wopl am 08 August 2016, 23:05:44
Hallo somansch,
habe in den letzten Tagen auch ein wenig Mühe gehabt, FHEM unter Docker lauffähig zu bekommen. Jetzt wirds so langsam.

Der Trick hier: Du mußt auf dem QNAP den cdc-acm Treiber aktivieren (depmod cdc-acm). Dann taucht für den CUL auch /dev/ttyACM0 auf, den Du dann im Container wie gewohnt ansprechen kannst. (siehe mein vorheriger Beitrag)

Bei Bedarf gerne mehr Info.
Gruß Wolfram

Hallo Wolfram,

dann gerne her mit dem "mehr". :-)

Das Image läuft soweit, echt super.
Nur den CUL bekomme ich nicht eingebunden.

Kannst du deinen Weg etwas genauer beschreiben?
Besten Dank!

VG
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

pipp37

Hallo.
Das überarbeitete Image (V2) ist ab sofort online.
Infos dazu sind auf der ersten Seite.

https://forum.fhem.de/index.php/topic,51190.0.html

Mehr Infos auch auf Github.
https://github.com/pipp37/fhem_jessie

Die große Änderung ist die Behandlung von Host Volumes.
Bei Verwendung des -v /hostdir:/opt/fhem  wird die initiale FHEM Installation im Dockerimage in das Host Verzeichnis extrahiert.
Das allerdings nur, wenn es leer ist.

Auch läuft nun Fhem vollständig unter der Kontrolle von supervisord und wird bei Fehlern automatisch neu gestartet.
Dazu muß Fhem mit einem Pid-File arbeiten. Das ist bereits konfiguriert.


Weiters kann auch FHEM über eine Web-UI des supervisord neu gestartet werden.
Port: 9001
User und Pass: admin


Vmware-ESX-VM-Ubuntu 16.04 Docker Main-FHEM -> Raspberry Pi-B ser2net
HMLAN mit HomeMatic, Busware SCC433 stacked SCC868 (culfw), Jeelink, MAX Heizkörperthermostate, Enigma2 (Vudo2/DM800SE), Philips 55" Ambilight PHTV - WMBUS EnergyCam+Engelmann FAW, Intertechno-Komponenten, Ubiquiti mPower

Spezialtrick

Zitat von: pipp37 am 22 März 2016, 10:42:17
Hallo.
Mein Docker Image in der 2. Version (1/2017) ist ab sofort online.

https://hub.docker.com/r/pipp37/fhem_jessie/

Grundlage ist Debian 8 (jessie).
Im Image laufen einige Damons für cron, Nfs Client, Autofs mit Netzwerk-Mounts  in /net, SSH usw. 
Der SSH Daemon ist über Port 2222 zu erreichen: root / fhem!
Weiters wurden auch die USB Tools installiert und ein HM-CFG Adapter zum Testen eingebunden.

Features:
* volume /opt/fhem
* volume /opt/yowsup-config
* Imagemagic
* avrdude - firmware flash
* Python - yowsup (separate volume) for whatsapp client - volume: /opt/yowsup-config
* Open-SSH daemon
* Exposed ports: 2222/SSH, 7072 Fhem-raw, 8083-8085 Fhem Web, 9001 supervisord
* supervisord for fhem, ssh
* cron daemon / at
* NFS client and autofs /net
* ssh root password: fhem!
* USB tools for CUL hardware
* Fhem start mit PID
* supervisor web-ui at port 9001 (user:admin pass:admin) (** new **)
* perl db Module für dblog (Tested SQLITE + MYSQL) (** new **)



Gibt es eine Möglichkeit eine bestehende FHEM Instanz mit ConfigDB und DBLog in den Docker Container zu migrieren?  ???
FHEM - Debmatic - Zigbee2MQTT - Homekit

Gizmoh

Zitat von: Spezialtrick am 02 Februar 2017, 15:03:44
Gibt es eine Möglichkeit eine bestehende FHEM Instanz mit ConfigDB und DBLog in den Docker Container zu migrieren?  ???

Vermutlich musst du nur den Docker Container bei dir installieren und dann deine kompeltte FHEM Instanz in das entsprechend gemountete Verzeichnis kopieren.

marty29ak

Ich teste auch gerade auf einer Synology und habe ohne Probleme ein Backup von meinem Aktuellen Raspberry nutzen können.
Was ich mich allerdings frage, ist es auch möglich eine Soundkarte für Text2Speech zu nutzen?
Sonst brauche ich ja trotzdem einen zusätzlichen Raspberry für diese Funktion.
Gruß Martin

Fistandantilus

Hi,

das Starten funktioniert auf meiner Syno, allerdings bleibt das Host Verzeichnis leer, woran könnte das liegen?

docker run -d --name Fhem --cap-add SYS_ADMIN -v /var/fhemdocker/fhem:/volume1/Docker/fhem -p 7072:7072 -p 8083:8083 -p 8084:8084 -p 8085:8085 -p 2222:2222 -p 9001:9001 pipp37/fhem_jessie

/opt/fhem hat vorher auch nicht funktioniert. Mein /opt ist nur ein Symlink auf /volume1/@optware

VG
F.
Raspberry Pi 3 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry für Heizungsregelung und 3. Raspberry als Alarmanlage

Fistandantilus

OK, vergesst es. Man muss nur richtig lesen Ziel:Quelle und nicht anders herum. Hab den Folder gefunden  ;D
Raspberry Pi 3 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry für Heizungsregelung und 3. Raspberry als Alarmanlage

lewej

Hallo Zusammen,

ich setze gerade Docker auf und soweit läuft alles, mein Problem ist eigentlich, wie bekomme ich am besten den kompletten /opt/fhem wieder zurück auf den HOSTServer.
Wenn ich ein dockerbuild mache, kann man ja keine Host Volumes reinhängen, erst danach. Jetzt will ich aber fhem bereits beim build installiert haben.

Wie habt ihr dieses Problem gelöst?

Gruß
lewej

botze

#27
Servus Zusammen,

ich bin vor kurzem auf eine Synology DS916+ umgestiegen und wollte daher auch meine FHEM Installation von meinem Raspberry auf das NAS umziehen. Da habe ich dein pipp37/fhem_jessie Image gefunden und war schon total Happy, da mir das Konzept am Besten gefallen hat und gleichzeitig nicht zu viel Schnick Schnack mit dabei ist.

Ich habe den Container per SSH auf meiner Diskstation wie folgt gestartet/erstellt:

sudo docker run -d --name Fhem --cap-add SYS_ADMIN -v /volume1/Documents/docker/k32fhem01/fhem:/opt/fhem -p 7072:7072 -p 8083:8083 -p 8084:8084 -p 8085:8085 -p 2222:2222 -p 9001:9001 pipp37/fhem_jessie


Allerdings kann FHEM nicht gestartet werden, wenn ich ein Volume mounte. Hier kommt folgender Error Log:


date stream content
2017-07-22 12:22:58 stdout 2017-07-22 14:22:58,645 INFO gave up: fhem entered FATAL state, too many start retries too quickly
2017-07-22 12:22:57 stdout 2017-07-22 14:22:57,643 INFO exited: fhem (exit status 13; not expected)
2017-07-22 12:22:57 stdout 2017-07-22 14:22:57,487 INFO spawned: 'fhem' with pid 266
2017-07-22 12:22:54 stdout 2017-07-22 14:22:54,481 INFO exited: fhem (exit status 13; not expected)
2017-07-22 12:22:54 stdout 2017-07-22 14:22:54,324 INFO spawned: 'fhem' with pid 264
2017-07-22 12:22:52 stdout 2017-07-22 14:22:52,319 INFO exited: fhem (exit status 13; not expected)
2017-07-22 12:22:52 stdout 2017-07-22 14:22:52,161 INFO success: sshd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2017-07-22 12:22:52 stdout 2017-07-22 14:22:52,161 INFO spawned: 'fhem' with pid 262
2017-07-22 12:22:51 stdout 2017-07-22 14:22:51,157 INFO exited: fhem (exit status 13; not expected)
2017-07-22 12:22:50 stdout 2017-07-22 14:22:50,936 INFO spawned: 'sshd' with pid 260
2017-07-22 12:22:50 stdout 2017-07-22 14:22:50,933 INFO spawned: 'fhem' with pid 259
2017-07-22 12:22:49 stdout 2017-07-22 14:22:49,929 INFO supervisord started with pid 256
2017-07-22 12:22:49 stdout 2017-07-22 14:22:49,929 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2017-07-22 12:22:49 stdout 2017-07-22 14:22:49,929 INFO RPC interface 'supervisor' initialized
2017-07-22 12:22:49 stdout 2017-07-22 14:22:49,928 INFO RPC interface 'supervisor' initialized
2017-07-22 12:22:49 stdout 2017-07-22 14:22:49,905 WARN Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing
2017-07-22 12:22:49 stdout 2017-07-22 14:22:49,905 CRIT Supervisor running as root (no user in config file)
2017-07-22 12:22:49 stdout   'Supervisord is running as root and it is searching '
2017-07-22 12:22:49 stdout /usr/lib/python2.7/dist-packages/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
2017-07-22 12:22:48 stdout [....] Starting periodic command scheduler: cron[?25l7[ ok 8[?12l[?25h.
2017-07-22 12:22:48 stdout [....] Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon[?25l7[ ok 8[?12l[?25h.
2017-07-22 12:22:48 stdout [....] Starting automount...[?25l7[FAIL8[?12l[?25hfailed (failed to load autofs4 module).
2017-07-22 12:22:48 stdout [....] Starting rpcbind daemon...[?25l7[ ok 8[?12l[?25h.
2017-07-22 12:22:48 stdout [....] Starting system message bus: dbus[?25l7[ ok 8[?12l[?25h.
2017-07-22 12:22:47 stdout /opt/yowsup-config not empty - no extraction, exit!
2017-07-22 12:22:47 stdout /opt/fhem not empty - no extraction, exit!
2017-07-22 12:22:47 stdout No argument supplied. Start supervisord and services.
2017-07-22 12:22:47 stdout There are 0 arguments:
2017-07-22 12:22:47 stdout Environment RUNVAR: fhem
2017-07-22 12:22:47 stdout Current directory : /root
2017-07-22 12:22:47 stdout invoke-rc.d: policy-rc.d denied execution of restart.
2017-07-22 12:22:46 stdout 256 53:4e:82:ed:5b:4d:a7:3a:14:5c:42:21:18:46:4e:dd /etc/ssh/ssh_host_ed25519_key.pub (ED25519)
2017-07-22 12:22:46 stdout Creating SSH2 ED25519 key; this may take some time ...
2017-07-22 12:22:46 stdout 256 91:db:4c:31:ec:77:89:6d:d8:68:1c:fb:05:87:88:fe /etc/ssh/ssh_host_ecdsa_key.pub (ECDSA)
2017-07-22 12:22:46 stdout Creating SSH2 ECDSA key; this may take some time ...
2017-07-22 12:22:46 stdout 1024 16:93:7b:18:fc:07:a6:f2:19:dc:ac:95:09:13:41:e1 /etc/ssh/ssh_host_dsa_key.pub (DSA)
2017-07-22 12:22:46 stdout Creating SSH2 DSA key; this may take some time ...
2017-07-22 12:22:45 stdout 2048 5d:f3:1d:ba:cd:9d:17:c3:b0:46:36:6b:4d:f6:80:dc /etc/ssh/ssh_host_rsa_key.pub (RSA)
2017-07-22 12:22:45 stdout Creating SSH2 RSA key; this may take some time ...


Im Ordner volume1/Documents/docker/k32fhem01/fhem sind nach dem ersten Start alle FHEM Dateien.

Wenn ich allerdings den Container wie folgt starte (ohne den Mount Punkt):


sudo docker run -d --name Fhem --cap-add SYS_ADMIN -p 7072:7072 -p 8083:8083 -p 8084:8084 -p 8085:8085 -p 2222:2222 -p 9001:9001 pipp37/fhem_jessie


Hier startet FHEM wunderbar. Ich habe auch einiges ausprobiert. Auch der folgende Aufruf hat keine Auswirkung auf das Verhalten:


sudo docker run -d --name Fhem --privileged -v /volume1/Documents/docker/k32fhem01/fhem:/opt/fhem -p 7072:7072 -p 8083:8083 -p 8084:8084 -p 8085:8085 -p 2222:2222 -p 9001:9001 pipp37/fhem_jessie


Hat jemand eine Idee von euch?

Danke und viele Grüße,
botze

----------------------------------------------------
Nachtrag:

Hallo Zusammen,

ich habe was gefunden. Wenn ich einen anderen Pfad nehme, dann funktioniert's. Der Pfad /volume1/Documents ist zwar verschlüsselt, aber bei anderen Docker Containern war das nie ein Problem.

Mit folgendem Aufruf konnte ich den Pfad richtig mounten (/volume1/docker ist nicht verschlüsselt):

sudo docker run -d --name k32fhem01 --cap-add SYS_ADMIN -v /volume1/docker/k32fhem01/fhem:/opt/fhem -p 7072:7072 -p 8083:8083 -p 8084:8084 -p 8085:8085 -p 2222:2222 -p 9001:9001 pipp37/fhem_jessie


Viele Grüße,
botze

der-Lolo

Hallo Zusammen,
auch ich dachte ich versuch mich mal an fhem in Docker - aber irgendwie bekomme ich den Container nicht gestartet...

root@cubietruck:~# docker start fhem
fhem
root@cubietruck:~# docker ps -a
CONTAINER ID        IMAGE                COMMAND             CREATED             STATUS                      PORTS               NAMES
b3c8c525ba02        pipp37/fhem_jessie   "./run.sh"          2 hours ago         Exited (1) 18 seconds ago                       fhem
225da23c3935        hello-world          "/hello"            3 hours ago         Exited (1) 3 hours ago                          elastic_montalcini
e50cd3c60d3e        hello-world          "/hello"            3 hours ago         Exited (1) 3 hours ago                          upbeat_lalande
root@cubietruck:~#


Wobei ich jetzt ehrlich gesagt keine Ahnung habe ob überhaupt ein Container startet und nicht vielleicht ein problem mit der Docker installation besteht.

FunkOdyssey

Zitat
Weiters wurden auch die USB Tools installiert und ein HM-CFG Adapter zum Testen eingebunden.

Darf ich fragen wie du das gemacht hast?
Ich finde den Stick nicht und kann ihn daher nicht durchreichen.
Oder hast du das per ,,privileged" gelöst?