Kann ich den docker container direkt als Benutzer 9001 starten?

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
iTob
Beiträge: 42
Registriert: 8. Mär 2020 19:58
Answers: 0

Kann ich den docker container direkt als Benutzer 9001 starten?

Beitrag von iTob »

Hallo,

ich habe auf meinem Docker-Server den Benutzer und Gruppe openhab ID 9001 angelegt.
Sobald ich mein openhab2 als docker container mit dem Parameter: user: "9001:9001" starte, startet openhab nicht korrekt.
Er bringt beim Start immer folgende Fehler:
openhab2-1 | + groupadd -g 9001 openhab
openhab2-1 | Create group openhab with id 9001
openhab2-1 | groupadd: Permission denied.
openhab2-1 | groupadd: cannot lock /etc/group; try again later.
als root startet openhab.
Warum will er immer die Gruppe anlegen, obwohl ich Benutzer und Gruppe auf dem Docker-Server erstellt habe?

Muss ich openhab als root starten oder gibt es da auch eine andere Möglichkeit?

influxdb und grafana laufen unter dem Benutzer 9001.

VG, Tobias

Benutzeravatar
udo1toni
Beiträge: 15345
Registriert: 11. Apr 2018 18:05
Answers: 247
Wohnort: Darmstadt

Re: Kann ich den docker container direkt als Benutzer 9001 starten?

Beitrag von udo1toni »

Wenn Du die Original Container nimmst (https://hub.docker.com/r/openhab/openhab...), dann musst Du User und Group als Environment definieren. Ist auch im Overview erklärt, unter https://hub.docker.com/r/openhab/openha ... -variables.

Welche UserID in den einzelnen Containern verwendet wird, sollte keine Rolle spielen, solange die Container sich kein Volume teilen (das sollte zumindest für openHAB, InfluxDB und Grafana definitiv der Fall sein, die Container kommunizieren ausschließlich über Netzwerk miteinander)
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.6, LXC)

iTob
Beiträge: 42
Registriert: 8. Mär 2020 19:58
Answers: 0

Re: Kann ich den docker container direkt als Benutzer 9001 starten?

Beitrag von iTob »

Danke.

Ich habe in der yml - Datei noch das environment eingefügt:

Code: Alles auswählen

  openhab2:
    image: openhab/openhab:2.5.12
    restart: always
    network_mode: host
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /opt/openhab/conf:/openhab/conf
      - /opt/openhab/userdata:/openhab/userdata
      - /opt/openhab/addons:/openhab/addons 
    environment:
        USER_ID: 9001
        GROUP_ID: 9001
    user: "9001:9001"
    depends_on: 
      - influxdb18
      - grafana

Starte ich so, dann bekomme ich weiterhin den Fehler:

Code: Alles auswählen

openhab2-1    | ++ test -t 0
openhab2-1    | ++ echo false
openhab2-1    | + interactive=false
openhab2-1    | + set -euo pipefail
openhab2-1    | + IFS='
openhab2-1    |         '
openhab2-1    | + '[' limited = unlimited ']'
openhab2-1    | + rm -f /openhab/runtime/instances/instance.properties
openhab2-1    | + rm -f /openhab/userdata/tmp/instances/instance.properties
openhab2-1    | + NEW_USER_ID=9001
openhab2-1    | + NEW_GROUP_ID=9001
openhab2-1    | + echo 'Starting with openhab user id: 9001 and group id: 9001'
openhab2-1    | Starting with openhab user id: 9001 and group id: 9001
openhab2-1    | + id -u openhab
openhab2-1    | ++ getent group 9001
openhab2-1    | + '[' -z '' ']'
openhab2-1    | + echo 'Create group openhab with id 9001'
openhab2-1    | + groupadd -g 9001 openhab
openhab2-1    | Create group openhab with id 9001
openhab2-1    | groupadd: Permission denied.
openhab2-1    | groupadd: cannot lock /etc/group; try again later.
openhab2-1 exited with code 10
entferne ich

Code: Alles auswählen

user: "9001:9001"
startet openhab als root und läuft.

Benutzeravatar
udo1toni
Beiträge: 15345
Registriert: 11. Apr 2018 18:05
Answers: 247
Wohnort: Darmstadt

Re: Kann ich den docker container direkt als Benutzer 9001 starten?

Beitrag von udo1toni »

Wie kommst Du darauf, dass openHAB als root läuft?
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.6, LXC)

iTob
Beiträge: 42
Registriert: 8. Mär 2020 19:58
Answers: 0

Re: Kann ich den docker container direkt als Benutzer 9001 starten?

Beitrag von iTob »

Der Container openhab läuft als root.
Die anderen Container kann ich als openhab (ID 9001) starten:

Code: Alles auswählen

  grafana:
    image: grafana/grafana-oss
    ports:
      - 3000:3000
    volumes:
      - /opt/grafana/var_lib:/var/lib/grafana
      - /opt/grafana/etc:/etc/grafana
    user: "9001:9001"
    depends_on: 
      - influxdb18

Benutzeravatar
udo1toni
Beiträge: 15345
Registriert: 11. Apr 2018 18:05
Answers: 247
Wohnort: Darmstadt

Re: Kann ich den docker container direkt als Benutzer 9001 starten?

Beitrag von udo1toni »

Jetzt verstehe ich das Problem. Du möchtest den ganzen Container im User-Context ausführen.

Das geht nicht, da der Container root-Rechte benötigt.
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.6, LXC)

iTob
Beiträge: 42
Registriert: 8. Mär 2020 19:58
Answers: 0

Re: Kann ich den docker container direkt als Benutzer 9001 starten?

Beitrag von iTob »

Vielen Dank. Kann ich mich irgendwie erkenntlich zeigen?

Benutzeravatar
udo1toni
Beiträge: 15345
Registriert: 11. Apr 2018 18:05
Answers: 247
Wohnort: Darmstadt

Re: Kann ich den docker container direkt als Benutzer 9001 starten?

Beitrag von udo1toni »

Klar, indem Du anderen hilfst, wenn die ein Problem haben, bei dem sie nicht weiter kommen :)
Egal ob hier, wenn Du Dich sicher fühlst, oder vielleicht bei einem anderen Thema, bei dem Du total fit bist - ich hab schon so oft zu anderen Themen im Netz Hilfe erhalten... so sollte das mit der Community eigentlich funktionieren - jeder hilft, wo er kann.
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.6, LXC)

Antworten