DockerImage - Volume Berechtigungsprobleme bei Installation

Solaranzeige und Docker
Alles was mit der Docker Version zu tun hat.

Moderatoren: Ulrich, DeBaschdi

Antworten
masterflai
Beiträge: 27
Registriert: Sa 22. Aug 2020, 00:04
Hat sich bedankt: 10 Mal
Danksagung erhalten: 1 Mal

DockerImage - Volume Berechtigungsprobleme bei Installation

Beitrag von masterflai »

Hallo Zusammen, ich nutze die Solaranzeige bereits seit Längerem als Datensammelstelle auf einem RPi4. Die Solaranzeige holt sich die Daten beim Wechselrichter, schreibt sie in die interne InfluxDB, stellt die Daten graphisch dar und stellt bestimmte Informationen via MQTT dem externen IOBroker zur Steuerung diverser Verbraucher zur Verfügung. Nun kam der Wunsch auf, die Solaranzeige auf ein QNAP NAS TS-453D mit Intel CPU zu verfrachten, welches bereits diverse Container ausführt. Nachdem ich mehrere Tage diverseste Konfigurationen ausprobiert habe, ist es mir endlich gelungen, eine Variante mit von der Container Station erstellten Volumes zum Laufen zu bewegen. Ich möchte aber gerne wie bei anderen Containern mit eigenen Volumes arbeiten. Allerdings scheint es tatsächlich ein Berechtigungsproblem (Permissions) mit den Volumes zu geben. Kann mir jemand erklären, warum die Berechtigungen nicht wie gedacht funktionieren und das auch nur bei diesem Image?

Grundlage waren die Angaben im Repository zum Bau von einem Container. Dort waren auch die möglichen Environment Parameter ersichtlich.

Angelegt habe ich ein Verzeichnis mit meinem Hauptuseraccount und dieser Account ist nicht der hier ersichtliche admin. Denn der admin Account ist bei mir deaktiviert.
2022-07-11 09_42_05-NAS540-QNAP.jpg
Dann habe ich die PUID und GUID für dieses besagte Benutzerkonto via SSH ermittelt.
2022-07-11 09_46_21-192.168.100.134 - PuTTY.jpg

Anschließend habe ich basierend auf dem "Latest" Image der Solaranzeige den Container wahlweise via SSH, QNAP Container-Station oder Portainer angelegt.

Code: Alles auswählen

docker run   -d   -e USER_ID="1010"   -e GROUP_ID="100"   -e TIMEZONE="Europe/Berlin"   -e UPDATE="yes"   -e MOSQUITTO="yes"   -e INFLUXDB="yes"   -p 3000:3000   -v /share/Docker/Solaranzeige/SOLARANZEIGE_STORAGE:/solaranzeige   -v /share/Docker/Solaranzeige/INFLUXDB_STORAGE:/var/lib/influxdb   -v /share/Docker/Solaranzeige/GRAFANA_STORAGE:/var/lib/grafana   -v /share/Docker/Solaranzeige/WWW_STORAGE:/var/www  -v /share/Docker/Solaranzeige/PVFORECAST_STORAGE:/pvforecast --name=Solaranzeige   --restart unless-stopped   --tmpfs /tmp   --tmpfs /var/log   takealug/solaranzeige:latest
Hierbei habe ich die User-ID und die Gruppe mitgegeben, sowie Mosquito und die InfluxDB aktiviert.
Als Netzwerktyp ist NAT gewählt.

Der Container wird dann erfolgreich angelegt und startet. Es werden alle Sourcen gezogen und die Ersteinrichtung durchgeführt.

Nach einem Neustart verbindet sich der Container mit dem Wechselrichter, holt die Daten, der Abruf via MQTT (Mosquito) ist möglich.
2022-07-11 09_59_19-NAS540-QNAP.jpg
Allerdings erscheint der berüchtigte Fehler:

Code: Alles auswählen

-Curl Fehler[2]! Daten nicht zur lokalen InfluxDB solaranzeige gesendet! Curl ErrNo. 7
Eine kurze Überprüfung ergibt, dass die InfluxDB sich nicht starten lässt, auch nicht manuell. Auch das Grafana Frontend auf Port 3000 wird nicht geladen. Die Verzeichnisse sind aber gefüllt. Es wurden also fleißig die Daten in die Shares geschrieben. Allerdings kann offenbar weder Grafana auf die DB im Share zugreifen und starten, noch die InfluxDB.

Ein anschließender Blick in die Berechtigungen der Volume Verzeichnisse ergibt, dass hier nicht mehr der ursprüngliche User steht, sondern entweder admin oder wahlweise die vom Image voreingestellten Werte, wenn ich nichts unter Environment mitgegeben hatte.

Der Container war so nicht nutzbar.

Letztlich hatte ich nur Erfolg, indem ich die Anlage direkt in der Container-Station durchführte. Keinerlei PUID oder GUID Angaben machte und die Shares direkt in der Container-Station erstellen und verwalten lies. So funktionierte alles. Allerdings habe ich so nur über Umwege Zugriff auf die Shares, um beispielsweise Daten zu sichern oder Sicherungen für Grafana und die InfluxDB bereitzustellen.

Es scheint nach diversen Setups tatsächlich an den Shares zu liegen und ich folgere, dass es die Berechtigungen sein müssen. Dafür würden auch folgende Meldungen im QCenter passen, denn die stammen aus den besagten Shares. Habe ich hier eine falsche PUID/GUID Kombination mitgegeben? Kann es sein, dass im Image nur 3stellige Integer für die User-ID vorgesehen sind? Eine 101 als User-ID wurde teilweise auch in den Shares eingetragen. Ich würde gerne verstehen, warum das nur bei diesem Container nicht so funktioniert, wie gedacht. Kann jemand meinen Geist erhellen oder das Problem nachstellen?
2022-07-11 10_19_48-NAS540-QNAP.jpg

DeBaschdi
Beiträge: 194
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 10 Mal
Danksagung erhalten: 34 Mal

Re: DockerImage - Volume Berechtigungsprobleme bei Installation

Beitrag von DeBaschdi »

Hallo, danke für deine ausführliche Fehlerbeschreibung,
ich habe eine neue Image Version 0.1.4 gepusht und tatsächlich einen kleinen Fehler bezüglich UID / GID beseitigt.
Kannst du das mal testen ? (vorher vorhandenes Image + Container sauber entfernen).

Ich kenne mich mit QNAP nicht aus, aber du musst die korrrekte (existierende) uid und gid des "dockerusers" der qnap angeben, also die uid und gid mit der deine anderen Container gestartet werden.
Ggf hilft es den Container "privilegiert" zu starten.

Hoasi
Beiträge: 26
Registriert: So 29. Nov 2020, 12:38
Hat sich bedankt: 2 Mal

Re: DockerImage - Volume Berechtigungsprobleme bei Installation

Beitrag von Hoasi »

Hallo zusammen,

ich habe das gleiche Problem wie masterflai.

Ich nutze den Docker seit Januar 2021. Ich hatte die Docker Volumes auf eingene Ordner gemounted. Hat auch alles ganz gut funktioniert. Nun musste ich den Docker neu aufsetzten. Ich habe mir das aktuelle Image gezogen und die Einstellungen vorgenommen, wie diese vorher im Docker waren und auch die Ordner wieder entsprechend gemounted. Allerding kann ich nund auch die InfluxDB nicht starten und Grafana auch nicht mehr aufrufen.

Gibt es dafür eine Lösung?
@masterflai - Hast Du das zum laufen bekommen?

Vielen Dank und Gruß!

Tino

DeBaschdi
Beiträge: 194
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 10 Mal
Danksagung erhalten: 34 Mal

Re: DockerImage - Volume Berechtigungsprobleme bei Installation

Beitrag von DeBaschdi »

Hallo Hoasi, was sagt denn das Docker Log ?

Code: Alles auswählen

docker logs Solaranzeige
Nach einem Image Update, oder selbst einer Neu Installation, sofern alle Volumes identisch herausgeführt wurden, sollte das 1:1 funktionieren.

Hoasi
Beiträge: 26
Registriert: So 29. Nov 2020, 12:38
Hat sich bedankt: 2 Mal

Re: DockerImage - Volume Berechtigungsprobleme bei Installation

Beitrag von Hoasi »

Hallo,

sorry für die späte Rückmeldung, leider war bei mir gerade ziemlich viel los. Offensichtlich bekomme ich es nicht hin Bilder einzubetten, daher verlinke ich sie einfach.

Hier ein paar Infos:

Die Dockerversion mit Dockerinternen Verzeichnissen läuft ohne Probleme: Folgendes Log kommt nach Start des Dockers:
Link zum Bild: https://1drv.ms/u/s!AiIX6KAmziwxaStySyV ... 0?e=QMdACf

Beim nicht funktionierenden Docker mit externen Volumes sieht das Log folgendermaßen aus:
Link zum Bild: https://1drv.ms/u/s!AiIX6KAmziwxa3Cyycr1wECu4TM

Ebenfalls habe ich festgestellt, dass die Ordnerfreigaben und User bei den externen Volumes anders lauten als bei den internen. Auch wenn ich die internen Volumes auf das externe kopiere und den Docker danach auf diese einrichte, werden die Berechtigungen und User nach Installation und Start des Docker wieder überschrieben.

Interne Volumes:
Link zum Bild: https://1drv.ms/u/s!AiIX6KAmziwxamFs3v-6NtkWFqA

Externe Volumes:
Link zum Bild: https://1drv.ms/u/s!AiIX6KAmziwxamFs3v-6NtkWFqA

Ich habe alles was mir einfällt probiert, ich bekomme es einfach nicht mehr hin.

Antworten