Docker Image pipp37/fhem_jessie Online

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

Vorheriges Thema - Nächstes Thema

FunkOdyssey

Was mir gerade aufgefallen ist:

# sshd on port 2222 and allow root login / password = fhem!
RUN apt-get -y --force-yes install openssh-server && apt-get clean   \
&& sed -i 's/Port 22/Port 2222/g' /etc/ssh/sshd_config  \
&& sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config \
&& sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/g' /etc/ssh/sshd_config \
&& echo "root:fhem!" | chpasswd \
&& /bin/rm  /etc/ssh/ssh_host_*


Ändert zwar die entsprechenden Zeilen, aber bei einer Standardinstallation von openssh sind diese alle auskommentiert. Somit werden die Änderungen nicht aktiv.

budda85

Guten Abend,
ich möchte einmal auf einen Beitrag von mir in einem anderen Thread aufmerksam machen.
Ich habe das Problem das FHEM anscheinend doppelt gestartet wird.
pipp37 hast du vielleicht eine Idee woran das liegen kann?
https://forum.fhem.de/index.php/topic,56339.msg701196.html#msg701196

budda85

Guten Morgen,
Ich habe jetzt über das Terminal die FHEM Instanz vom Supervisor gestoppt.
Nun werden auch keine Logs mehr mit Probleme geschrieben.
FHEM läuft aber nach wie vor  ??? ???

speedy-g

Hallo,

hatte das gleiche Problem. Ich hatte meine alte Konfiguration übernommen und da fehlte das anlegen des PID-Files...
attr global pidfilename /var/run/fhem/fhem.pid
hinzugefügt und siehe da es läuft  ::)
FHEM auf QNAP im Docker Container (pipp37/fhem_jessie), DbLog -> MariaDB (QNAP)
KNX/EIB (eibd+Siemens N148/21), Homematic (HM-CFG-LAN), Xiaomi Mi Gateway

uwe28

Hallo,

Ich tüftel nun schon eine ganze Weile dran, bekomme es aber nicht hin meinen Selbstbau-nanoCUL an den Docker container zu übergeben.

docker run -d --name fhem --privileged -p 7072:7072 -p 8083:8083 -p 8084:8084 -p 8085:8085 -p 2222:2222  pipp37/fhem_jessie --device=/dev/bus/usb/001/002 wird ausgeführt. fhem wird auch gestartet und ist erreichbar.

Beim hinzufügen des CUL über:
define nanoCUL CUL /dev/bus/usb/001/002 1234 wird der CUL auch erstellt, aber es bleibt bei STATE: disconnected

Die Docker Software läuft auf einnem NAS mit openmediavault 3.0.94

Anbei noch die Einstellungen die ich vornehmen kann.

Hoffe mir kann geholfen werden.

MFG Uwe

FunkOdyssey

Ich würde das minimal anders schreiben:

docker run -d --name fhem --privileged -p 7072:7072 -p 8083:8083 -p 8084:8084 -p 8085:8085 -p 2222:2222  pipp37/fhem_jessie --device=/dev/bus/usb/001/002:/dev/bus/usb/001/002

Quelle und Ziel müssen bzw. sollten angegeben werden. Genau wie bei den Ports.

uwe28

Zitat von: FunkOdyssey am 14 Februar 2018, 16:41:44
Ich würde das minimal anders schreiben:

docker run -d --name fhem --privileged -p 7072:7072 -p 8083:8083 -p 8084:8084 -p 8085:8085 -p 2222:2222  pipp37/fhem_jessie --device=/dev/bus/usb/001/002:/dev/bus/usb/001/002

Quelle und Ziel müssen bzw. sollten angegeben werden. Genau wie bei den Ports.

Bringt leider auch keine Veränderung mit sich. :-/

FunkOdyssey

Kann das sein, dass dir /dev/bus/usb/001/002 im Container gar nicht angezeigt wird?
Ich selbst mach das mit /dev/serial/by-id/ bei allen meinen USB-Geräten ohne Probleme. Okay, anderes Image.

Versuche doch mal folgendes:

docker run -d --name fhem --privileged -p 7072:7072 -p 8083:8083 -p 8084:8084 -p 8085:8085 -p 2222:2222 --device=/dev/bus/usb/001/002:/dev/bus/usb/001/002 pipp37/fhem_jessie

uwe28

Wenn ich per ssh auf den Container verbinde und "lsusb" ausführe wird der CUL angezeigt.

Der Neue Code brachte leider auch keine Veränderung.

Im Log von fhem steht:
Can't open /dev/bus/usb/001/004: Permission denied
falls das weiter hilft. (Schon seit meinen ersten Versuchen) Die Berechtigungen sind dabei eigentlich richtig gesetzt.
Kann man den fhem Benutzer eigentlich per ssh einloggen? Hab da kein PW gefunden bisher.

FunkOdyssey

Ich kenne deine Docker-WebUI nicht. Ist das normal, dass USB-Geräte im Bereich "Volumes" gemappt werden?

Zitat von: uwe28 am 14 Februar 2018, 17:47:20
Im Log von fhem steht:
Can't open /dev/bus/usb/001/004: Permission denied
falls das weiter hilft. (Schon seit meinen ersten Versuchen) Die Berechtigungen sind dabei eigentlich richtig gesetzt.

Ich kann mir nicht vorstellen, dass das etwas mit Berechtigungen zu tun hat. Im Container läuft sowieso alles als Root. Im pipp37-Image wird nur leider zusätzlich supervisord genutzt. Eigentlich unnötig, denn es reicht doch der FHEM-Dienst im Container. Aber dennoch dürfte sich das auf deine Situation nicht auswirken.

Du könntest ja evtl. den Container mit mehr Rechten starten. Finde ich aber nicht so gut. Aber wenigstens zum Ausschließen von Berechtigungsproblemen.
docker run --cap-add=SYS_ADMIN ...

Ansonsten prüfe doch bitte noch einmal die Pfade. Mountest du "Müll" in den Container, so kann der damit auch nichts anfangen. Prüfe mal, ob beides der gewünschte nanoCul ist.

Wie gesagt: Ich würde das sowieso mit nem anderen Pfad machen: /dev/serial/by-id/...

Zitat von: uwe28 am 14 Februar 2018, 17:47:20
Kann man den fhem Benutzer eigentlich per ssh einloggen? Hab da kein PW gefunden bisher.

Eigentlich läuft alles als root. Der FHEM-User wird in den FHEM-Docker-Images häufig direkt wieder gelöscht.
Du kannst dich auf die Konsole des Containers wie folgt einloggen:
docker exec --it fhem bash

Auch hier könnte supervisord sich wieder anders verhalten.

uwe28

#40
Das mappen über Volumes war nur ein Test, der leider keine Veräanderung brachte.

Habe deine Tipps nun alle ausprobiert. Leider immernoch alle mit dem selben Resultat.

Auch das mit dem /dev/serial/by-id/ und docker run --cap-add=SYS_ADMIN

Habe außerdem testhalber versucht einen Harmony-Hub der im Netzwerk hängt einzubinden. Auch zu dem kann keine Verbindung hergestellt werden.
Außerdem habe ich noch Docker CE versucht zu verwenden. Auch das brachte keine Veränderung.

Schonmal vielen Dank für die Hilfestellung.

EDIT: Habe aus dem Beitrag https://forum.openmediavault.org/index.php/Thread/19553-OMV-Docker-plugin-media-server-Plex-PlexPy-Ombi-Libresonic-NZBGet-ruTorrent-Sona/ erfahren, dass noch ein Benutzer in OMV angelegt werden und auch in dem Docker Container eingetragen werden muss. Desweiteren scheint man die Verzeichnisse beim erstellen des Containers mit übergeben zu müssen. Habe dort den "/dev/serial/by-id" Ordner mit übergeben.

Das Resultat ist , dass der Cul jetzt mit STATE opened eingetragen ist. Ich hoffe nur das mich das der Lösung des Problems näher brachte.

EDIT2: Das war scheinbar der Durchbruch. Nach einem erneuten Starten des Containers und eines erneuten einbinden des CUL ging es dann plötzlich. Nun muss ich nur zusehen wie ich den Zustand aufrecht erhalte!


Danke FunkOdyssey für die Unterstützung!

mfg Uwe

FunkOdyssey

Ach so. OpenMediaVault habe ich überlesen. Das scheint dort irgendwie anders zu laufen.

Poste doch mal deine Lösung für die Nachwelt.

Ich habe Docker CE auf nem Debian-Serversystem aktiviert und habe meine USB-Geräte problemlos über docker run und via docker-compose problemlos eingefunden. Hier waren keine zusätzlichen Schritte erforderlich.

uwe28

#42
Also:

Um in OMV3 den Docker Container einzubinden muss, IN OMV, ein Benutzer angelegt werden der in den Gruppen "users" und "docker" Mitgleid ist.
Anschließend muss die für den nächsten Schritt benötigte uid und gid bestimmt werden.
Dies geschieht indem man sich über ssh auf dem host einloggt und den den befehl "id <der neu angelegte Benutzer>" ausführt.

Nun kann die image in den Container überführt werden. Dafür auf "run image" im OMV Menü > Docker anklicken und unter "Enviorment Variables" die Punkte PUID(uid) und PGID(gid) manuell hinzufügen. Außerdem muss der Container im Network mode "Host" und mit dem Hacken bei "privileged mode" ausgeführt werden.

Unter "Volume and Bind mounts" wird nun der Pfad des CUls eingetragen: "Hostpath": /dev/serial/by-id/usb-FTDI..., "Containerpath": /dev/serial/by-id/usb-FTDI...

Hab noch ein paar Bilder zur Unterstützung angehangen.