Docker-Fehler mit Zigbee- und MQTT-Containern

Hallo,
Ich habe ein Problem mit meiner Gladys-Installation,
Die MQTT- und ZIGBEE2MQTT-Dienste funktionieren nicht mehr, ich verstehe nicht warum, ich habe nichts Besonderes verändert, hier ist die Log-Nachricht, ich bin für jeden Tipp dankbar.

Meine aktuelle Konfiguration verwendet Unraid OS, sie sind von Docker Version 20.10.24, Build 297e128
auf Docker 23 umgestiegen und dann wegen Stabilitätsproblemen oder so wieder zurückgekehrt, denken Sie, dass das das Problem sein könnte?

2023-08-17T23:24:37+0200 <warn> service.start.js:44 (Service.start) Unable to start service zigbee2mqtt PlatformNotCompatible [Error]: DOCKER_CONTAINER_ID_NOT_AVAILABLE
    at System.getGladysContainerId (/src/server/lib/system/system.getGladysContainerId.js:115:11)
    at System.getNetworkMode (/src/server/lib/system/system.getNetworkMode.js:16:25)
    at Zigbee2mqttManager.init (/src/server/services/zigbee2mqtt/lib/init.js:19:23)
    at Object.start (/src/server/services/zigbee2mqtt/index.js:17:5)
    at Service.start (/src/server/lib/service/service.start.js:33:7)
    at start (/src/server/api/controllers/service.controller.js:22:21)
2023-08-17T23:24:39+0200 <info> index.js:16 (Object.start) Starting MQTT service
2023-08-17T23:24:39+0200 <warn> service.start.js:44 (Service.start) Unable to start service mqtt PlatformNotCompatible [Error]: DOCKER_CONTAINER_ID_NOT_AVAILABLE
    at System.getGladysContainerId (/src/server/lib/system/system.getGladysContainerId.js:115:11)
    at System.getNetworkMode (/src/server/lib/system/system.getNetworkMode.js:16:25)
    at MqttHandler.checkDockerNetwork (/src/server/services/mqtt/lib/checkDockerNetwork.js:8:29)
    at MqttHandler.getConfiguration (/src/server/services/mqtt/lib/getConfiguration.js:24:24)
    at MqttHandler.init (/src/server/services/mqtt/lib/init.js:13:25)
    at Object.start (/src/server/services/mqtt/index.js:17:5)
    at Service.start (/src/server/lib/service/service.start.js:33:7)
    at start (/src/server/api/controllers/service.controller.js:22:21)

Hast du einfach versucht, die Integrationen in Gladys zu deaktivieren/aktivieren?
Dadurch werden die Container zerstört/neu erstellt/neu konfiguriert.


Mosquitto wurde gestern von Watchtower aktualisiert…

Dieser Fehler tritt auf, wenn Gladys keine Möglichkeit hat, die Container-ID zu finden, in der sie läuft (Gladys/server/lib/system/system.getGladysContainerId.js at master · GladysAssistant/Gladys · GitHub).

Wir verwenden drei Methoden, um die Container-ID zu finden:

  • Über die CID-Datei
  • Durch das Auslesen der Datei /proc/self/cgroup
  • Durch das Auslesen der Datei /proc/self/mountinfo

Je nach Docker-Version funktioniert eine der drei Methoden. :wink:

Vielleicht funktioniert es tatsächlich, wenn man auf eine neuere Docker-Version umsteigt?

Mit welchem Befehl hast du Gladys gestartet?

Vielen Dank für deine Hilfe,
Wenn ich versuche, die Option zu deaktivieren und wieder zu aktivieren, passiert überhaupt nichts. Ich habe sogar das Gefühl, dass der Button nicht mehr funktioniert (nichts erscheint in den Logs, wenn ich darauf klicke), und in den Integrationen in den Einstellungen sind beide mit Fehlern behaftet und können nicht gestartet werden

@pierre-gilles könnte das daher kommen? Das erinnert mich an die Anpassungen, die wir vornehmen mussten, um es auf unraid laufen zu lassen und die Hinzufügung einer Variablen zum Docker: /var/run/docker.sock, oder dieser Thread: Gladys sur Unraid

Trotzdem habe ich gerade überprüft und der docker.sock ist immer noch am selben Ort:

@jgcb00 Hast du den Befehl « docker run » ausgeführt, den du für den Start von Gladys verwendet hast?

yep :

docker run
  -d
  --name='Gladys-Assistent'
  --net='host'
  --privileged=true
  -e TZ="Europe/Paris"
  -e HOST_OS="Unraid"
  -e HOST_HOSTNAME="Tower"
  -e HOST_CONTAINERNAME="Gladys-Assistent"
  -e 'TZ'='Europe/Paris'
  -e 'SERVER_PORT'='8006'
  -e 'SQLITE_FILE_PATH'='/var/lib/gladysassistent/gladys-production.db'
  -e 'NODE_ENV'='production'
  -l net.unraid.docker.managed=dockerman
  -l net.unraid.docker.webui='http://[IP]:[PORT:8006]'
  -l net.unraid.docker.icon='https://gladysassistent.com/en/img/external/github-gladys-logo.png'
  -v '/mnt/user/appdata/Gladys':'/var/lib/gladysassistent':'rw'
  -v '/dev':'/dev':'rw'
  -v '/run/udev':'/run/udev':'ro'
  -v '/var/run/docker.sock':'/var/run/docker.sock':'rw'
  --restart=always
  --log-opt max-size=10m 'gladysassistent/gladys:v4'

8cc639be315af2f6a2680da6a99fb4236e73fbe97729c42bb0d0e8ff66f226e5

Ok, dann ist es normal, dass es nicht mehr funktioniert, es fehlt:

--cgroupns=host \

Schau dir den Docker-Befehl in der Dokumentation an:

Das ist eine alte Änderung, die stammt von März 2022 :smiley:

Die Erklärung im Blog:

Tatsächlich hat das mein Problem gelöst, aber was mich stört, ist, dass ich das vorher nicht gebraucht habe. Wahrscheinlich ist unraid nicht auf Debian 11 gelaufen. Ich werde das Template auf Git aktualisieren.
Vielen Dank @pierre-gilles

Super, toll wenn es funktioniert :raising_hands: