Offizielles FHEM Docker Basis Image für verschiedene Plattformen

Begonnen von Loredo, 28 Juli 2018, 21:24:57

Vorheriges Thema - Nächstes Thema

kadettilac89

mit exotisch meine ich auch Docker auf Nas ... bezogen auf die Aussage dass es kaum Dokumente gibt und auch die Reaktionen auf Fragen in entsprechenden Foren ...

Wenn hierher verwiesen wurde hatte vielleicht jemand Verdacht, dass es am Container liegen könnte oder eine simple, und bekannte, Einstellung im Docker ist ... dem ist scheinbar nciht so. Das Beispiel von betateilchen läuft ja bei mir im Docker.

Ob nun eigener Post oder der bereits offene ... du kannst auch den offenen weiter nutzen ... es bezog sich darauf, dass dein Problem nicht am Fhem-Container liegt wofür dieser Thread da ist.

Du wirst auch keinen finden der dir den "ganzen Kram" erklärt, dein Problem liegt an irgend welchen Netzwerkeinstellungen. Möglicherweise nicht mal QNAP-spezifisch. Für den Kram studieren Leute mehrere Semester.

Mit dem Hinweis einen reset des Docker Setup würdest du halt ausschließen, dass du durch Tests schon irgend etwas eingestellt hast, woran ein Experte erstmal nicht denkt weil es keinen Sinn macht. Was nun aber Sinn macht kann jemand der ein Problem hat wie du nicht beurteilen. Deine Anforderung mit dem Container ins Internet zu kommen ist ein Basic ... dafür sollte es keine, oder zumindest keine große Konfiguration benötigen.

Du hast einen virtual Switch, ist der im private Mode .. nur ein Beispiel ... du kannst ja mal die ganzen Einstellungen mit Screenshots in ein Dokument machen, aller Komponenten, FHEM hast du schon irgendwo, es gibt noch virtual Switch, Vlan settings, DNS, DHCP, ggf. Portforwarding, gibts in QNAP eine Firewall?  ... vielleicht nimmt sich jemand die Zeit und geht das mal durch ...

kadettilac89

Noch ein Nachtrag ... im Screenshot des QNAP-Forums ist ein Adapter mit einem blauen Globus dargestellt, scheinbar ein Indikator dass Internet verfügbar ist. Dieses Symbol fehlt bei dir im virtual Switch. Viellecht musst du / kannst du das beim gewählten Adapter einstellen, oder es fehlt ein Adapter mit der Freigabe ....

https://forum.qnap.com/viewtopic.php?t=147457#p709471


Wernieman

Bitte mach einen neuen Thread auf. Ich würde hier anfangen auf Netzwerkebene zu debuggen. Meine Glaskugel sagt: DNS Auflösungs Problem
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MarkoP

Sorry, aber dann sag auch an welcher Stelle ich den dritten Threat aufmachen soll?
Ich blicke duch die Struktur der Unterforen nur bedingt durch.
Fhem-Server läuft per Bridge mit eigener IP auf einem Docker-Container auf meinem NAS. Alle Geräte haben eine statische IP im Netzwerk und laufen im gleichen Subnetzwerk. DHCP ist deaktiviert. DNS läuft über den Router (Fritzbox Cable), alternative über Googles 8.8.8.8

Wernieman

"Anfängerfragen" oder "Sonstiges" würde ich Tippen ... im Zweifel bei Sonstiges. Du kannst dann auch gerne in diesem Thread daraufhin verlinken ...

Bei den Meisten Foren steige ich bei der Struktur nicht durch. Was ich aber (persönlich) hasse: Monstersthreads, wo verschiedene Problemes behandelt werden. Dann kann ein anderer mit dem gleichen  Problem niemals die Lösung finden.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

kadettilac89

Zitat von: MarkoP am 26 August 2020, 07:59:24
Sorry, aber dann sag auch an welcher Stelle ich den dritten Threat aufmachen soll?
Ich blicke duch die Struktur der Unterforen nur bedingt durch.
Wenn du dazu schon 2 Threads geöffnet hast dann kannst auch einen der beiden weiter verwenden, du musst nur die INformationen zusammentragen, vor allem dass die Definition bei anderen im Docker funktioniert und es sehr wahrscheinlich an deinem QNAP setup liegt, nicht an FHEM-Dockerimage ... einen dritten Thread zum selben Thema musst du nicht öffnen. Betonung "selbes Thema". Bei Bedarf kannst den Thread auch in ein anderen Forumteil verschieben ... aber der eine, hier verlinkte, ist schon im Anfängerforum.

MarkoP

Dann würde ich sagen, dass wir das Thema im anderen Threat unter "Anfängerfragen" weiterführen.
Dort wurde das Problem ja immer weiter eingeschränkt und bereits viele Informationen zusammengetragen.

In meinem letzten Post dort habe ich auch bewusst darauf hingewiesen, wohin sich die vermutliche Fehlerursache (Kommunikation zwischen Container und Extern) verschoben hat.
Fhem-Server läuft per Bridge mit eigener IP auf einem Docker-Container auf meinem NAS. Alle Geräte haben eine statische IP im Netzwerk und laufen im gleichen Subnetzwerk. DHCP ist deaktiviert. DNS läuft über den Router (Fritzbox Cable), alternative über Googles 8.8.8.8

ch.eick

#967
EDIT: Ich habe gerade bereits Grafana mit in das .yml File aufgenommen.

Hallo zusammen,
ich habe das Gefühl, dass ich nach 8 Monaten meine Docker container aktualisieren müsste.
Im Fhem Container ist ja eine aktualisierung drin, die ich auch fleißig genutzt habe, aber was ist mit dem Debian?
Aus Unwissenheit habe ich dort natürlich auch ein Login gemacht und es von Hand aktualisiert. Ist das richtig so?

Wäre das hier auch ein Weg, um die neuesten Konfigurationen zu bekommen, oder schieße ich mir da ins Knie?

docker stop ...
docker rm ...
docker pull ...
docker run ...


Ich möchte natürlich auch rausbekommen, wo ich unsauber gearbeitet habe und z.B. cpam innerhalb des Containers verwendet habe, ohne es im .yml file zu laden.

Hier ist meine .yml Datei

version: '3.3'

networks:
  net:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.27.0.0/24
volumes:
  portainer_data:

services:

  fhem:
    image: fhem/fhem:latest
    restart: always
    network_mode: host
    privileged: true
    volumes:
      - "./core/:/opt/fhem/"
#      - "./core/contrib/configDB/configDB.conf:/opt/fhem/configDB.conf"
    environment:
      PIP_PKGS: "vallox_websocket_api fhem beautifulsoup4"
      CPAN_PKGS: "Crypt::OpenSSL::AES XML::Bare"
      FHEM_UID: 6061
      FHEM_GID: 6061
      TIMEOUT: 10
      RESTART: 1
      TELNETPORT: 7072
      TZ: Europe/Berlin
#      CONFIGTYPE: configDB
    depends_on:
      - "mysql"

  portainer:
    image: portainer/portainer:latest
    restart: always
    command: -H unix:///var/run/docker.sock --no-auth
    network_mode: host
    environment:
      - REGISTRY_HTTP_TLS_CERTIFICATE=/certs/portainer.crt
      - REGISTRY_HTTP_TLS_KEY=/certs/portainer.key
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
      - ./certs/portainer.key:/certs/portainer.key
      - ./certs/portainer.crt:/certs/portainer.crt

  mysql:
    image: hypriot/rpi-mysql
    restart: always
    network_mode: host
    expose:
        - "3306"
        - "33060"
    ports:
        - "3306:3306"
        - "33060:33060"
    volumes:
        - ./mysql/init.sql:/docker-entrypoint-initdb.d/fhem-init.sql
        - ./mysql/data:/var/lib/mysql
        - ./mysql/log:/var/log
        - ./mysql/mycustom.cnf:/etc/mysql/conf.d/custom.cnf
    environment:
        - MYSQL_ROOT_PASSWORD=xxxxxxx
        - MYSQL_DATABASE=fhem
        - MYSQL_USER=fhemuser
        - MYSQL_PASSWORD=xxxxxxx

  zigbee2mqtt:
    image: koenkk/zigbee2mqtt
    volumes:
      - ./zigbee2mqtt/data:/app/data
      - /run/udev:/run/udev:ro
    devices:
      - /dev/ttyACM0:/dev/ttyACM0
    restart: always
    network_mode: host
    privileged: true
    environment:
      - TZ=Europe/Berlin

  grafana:
    image: grafana/grafana:latest
    restart: always
    network_mode: host
    expose:
      - "3000"
    ports:
      - "4000:3000"
    volumes:
      - ./grafana/data:/var/lib/grafana
      - ./grafana/log:/var/log/grafana
      - ./grafana/conf/mygrafana.ini:/etc/grafana/grafana.ini
    environment:
      - GF_SECURITY_ADMIN_PASSWORT=xxxxxxxx
      - GF_LOG_MODE=console file
      - GF_LOG_LEVEL=debug
      - GF_RENDERING_SERVER_URL=http://{HOST IP}:8081/render
      - GF_RENDERING_CALLBACK_URL=http://{HOST IP}:4000/
      - GF_LOG_FILTERS=rendering:debug
    depends_on:
      - "mysql"

  renderer:
    image: grafana/grafana-image-renderer:latest
    restart: always
    network_mode: host
    expose:
      - "8081"
    ports:
      - "8081:8081"
    depends_on:
      - "grafana"

Grafana ist bereits mit aktiviert, es wurde jedoch noch nicht damit gemacht.

Könnte mir bitte jemand die einzelnen Schritte als Anleitung kurz auflisten?

Gruß
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

MarkoP

Hallo, hab mal eine Frage die einige wahrscheinlich ziemlich blöd finden werden, aber ich finde keine Lösung.

Es gibt genug Anleitungen für Fhem wo per sudo Bibliotheken oder Berechtigungen geladen/gesetzt werden müssen. Leider sind diese Anleitungen in der Regel für Raspi's geschrieben, so dass es heißt sich per ssh einzuwählen. Das funktioniert ja leider bei einer Fhem-Installation auf dem Docker nicht so einfach.

Wenn ich es im Docker über das Terminalfenster mache wird die Verarbeitung immer mit Code 1 beendet und ich bekomme beispielsweise folgendes angezeigt:
sudo: error in /etc/sudo.conf, line 0 while loading plugin "sudoers_policy"                                                                                                                                                                                                                                                       
sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner                                                                                                                                                                                                                                                                   
sudo: fatal error, unable to load plugins


Daher meine - vielleicht blöde - Frage, wie und wo muss ich die Sudo-Befehle absetzen.
Gibt es eine andere Möglichkeit?

Mein Fhem läuft im Standard-Docker auf einem QNAP NAS mit ARM-Prozessor in der aktuellsten Container-Station.
Fhem-Server läuft per Bridge mit eigener IP auf einem Docker-Container auf meinem NAS. Alle Geräte haben eine statische IP im Netzwerk und laufen im gleichen Subnetzwerk. DHCP ist deaktiviert. DNS läuft über den Router (Fritzbox Cable), alternative über Googles 8.8.8.8

Wernieman

Ich kenne den FHEM Container nicht, aber ...

Im Allgemeinen bist Du schon root, wenn Du per "docker exec -it <Containername> /bin/bash" reingehst.

Bei (fast) allen Container gibt es auch nach dem "einloggen" im Terminal ein "Prompt". Also z.B. root@<Containername>:
In diesem Falle steht der User (hier eben root:) auch gleich drin. Wenn Es nicht so ist, mußt Du schauen wie Du root werden kannst. Sehr häufig ist bei Dockr-Containern die "sudo"-Umgebung nicht installiert.

Du solltest aber eher beim Containerbauen oder starten die Zusätzlichen Erweitrungen durchführen, als im  Container selber "zu pfuschen". Für Debug/Entwickler-Zwecke habe ich es selber schon gemacht, aber man sollte sich merken, das bei einem "neumachen" des Containers diese Änderungen verlorengehen.

Der Wichtigste Sinn von Containern ist, das man auf einem anderen System den Container bauen und Testen kann und dann weiß, das er im Zielsystem auch funktionieren muß (sollte). Dazu darf er aber eben nicht manuell angepasst werden.
Hinweis: Änderungen an der docker-compose.yml sind keine manuellen Änderungen in diesem Sinne ;o)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

ch.eick

#970
Hallo zusammen,

leider bin ich mit meinem Refresh für den Docker Container noch nicht weiter gekommen.
Könnte eventuell mal jemand etwas hierzu https://forum.fhem.de/index.php/topic,89745.msg1081471.html#msg1081471 schreiben?

Genau das möchte ich jetzt bereinigt wissen :-)
Zitat von: Wernieman am 10 September 2020, 09:45:29
Du solltest aber eher beim Containerbauen oder starten die Zusätzlichen Erweiterungen durchführen, als im  Container selber "zu pfuschen". Für Debug/Entwickler-Zwecke habe ich es selber schon gemacht, aber man sollte sich merken, das bei einem "neumachen" des Containers diese Änderungen verloren gehen.
Hinweis: Änderungen an der docker-compose.yml sind keine manuellen Änderungen in diesem Sinne ;o)

Viele Grüße
     Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

MarkoP

ZitatIm Allgemeinen bist Du schon root, wenn Du per "docker exec -it <Containername> /bin/bash" reingehst.
Du meinst im Terminal des Dockers oder wo? Dort ergibt die Ausführung jedenfalls folgende Rückmeldung mit einem Code 126: oci runtime error: exec failed: container_linux.go:265: starting container process caused "exec: \"docker\": executable file not found in $PATH" Was genau versteht du unter Containername? die IP des Containers, den Namen der in der Containerstation angezeigt wird?

ZitatBei (fast) allen Container gibt es auch nach dem "einloggen" im Terminal ein "Prompt". Also z.B. root@<Containername>
Ich bekomme ein Promt in einem kleinen Dialogfenster in dem als Beispieltext lediglich "/bin/bash" angezeigt wird. Es ist jedoch nicht ersichtlich ob man root ist oder nicht. Es erfolgt auch keine Anmeldung etc.

ZitatDu solltest aber eher beim Containerbauen oder starten die Zusätzlichen Erweiterungen durchführen, als im  Container selber "zu pfuschen"
Wie will ich denn nach zu installieren Bibliotheken beim Containerbauen vorhersehen? Die Aussage erschließt sich mir nicht. Oder bezog sich das auf @ch.eick?
Fhem-Server läuft per Bridge mit eigener IP auf einem Docker-Container auf meinem NAS. Alle Geräte haben eine statische IP im Netzwerk und laufen im gleichen Subnetzwerk. DHCP ist deaktiviert. DNS läuft über den Router (Fritzbox Cable), alternative über Googles 8.8.8.8

Wernieman

s.o. ich kenne direkt den FHEM Container nicht, nur allgemein Container.

Zu der Doku zum FHEM COntainer gibt es einen Hinweis, wie man Fremderweiterungen einbaut. Bitte siehe dort nach.

Ansonsten .. probiere doch mal einen root-Befehl ohne sudo.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MarkoP

ZitatZu der Doku zum FHEM COntainer gibt es einen Hinweis, wie man Fremderweiterungen einbaut. Bitte siehe dort nach.
Hast du vielleicht eine Quelle? Die Suchanfragen "FHEM COntainer", "FHEM COntainer Fremderweiterungen" und "COntainer Fremderweiterungen" geben keine passenden Ergebnisse zurück.

ZitatAnsonsten .. probiere doch mal einen root-Befehl ohne sudo.
Wenn ich einen kennen würde ...
Spontan fällt mir nur ls ein, wobei ich nicht weiß, ob das ein root-Befehl ist oder nicht. Der jedenfalls funktioniert und liefert ein Ergebnis zurück

Kann ich mich per ssh auf das NAS einklinken und dann weiter in den Container?
Fhem-Server läuft per Bridge mit eigener IP auf einem Docker-Container auf meinem NAS. Alle Geräte haben eine statische IP im Netzwerk und laufen im gleichen Subnetzwerk. DHCP ist deaktiviert. DNS läuft über den Router (Fritzbox Cable), alternative über Googles 8.8.8.8

Wernieman

Wenn Deine NAS es kann ... kenne mich aber nur mit "reinem" Docker aus. Welches Docker oder Derivat Deine NAS hat, kannst Du nur selber rausfinden.

Doku steht im ersten Beitrag im Thread von Loredo ... oder hier:
https://github.com/fhem/fhem-docker/
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html