Docker: /start.sh error

Hi

when homegear mit docker started, sehe ich folgende Fehlermeldung:

/start.sh: line 29: [: too many arguments
08/12/20 10:35:10.122 Loading settings from /etc/homegear/main.conf
08/12/20 10:35:10.139 Loading RPC server settings from /etc/homegear/rpcservers.conf
08/12/20 10:35:10.140 Loading RPC client settings from /etc/homegear/rpcclients.conf

Es scheint das folgendes im start.sh nicht richtig funktioniert (zeile 29 ist die if-clause):

USER=homegear

USER_ID=$(id -u $USER)
USER_GID=$(id -g $USER)

USER_ID=${HOST_USER_ID:=$USER_ID}
USER_GID=${HOST_USER_GID:=$USER_GID}

if [ $USER_ID -ne 0 ]; then
        sed -i -e "s/^${USER}:\([^:]*\):[0-9]*:[0-9]*/${USER}:\1:${USER_ID}:${USER_GID}/" /etc/passwd
        sed -i -e "s/^${USER}:\([^:]*\):[0-9]*/${USER}:\1:${USER_GID}/" /etc/group
fi

soweit ich beurteilen kann sehe ich keinen impact im täglichen Betrieb.

viele Grüße

Hi @jipp,

vielen Dank! Da muss ich noch einmal in Ruhe schauen. Auf Anhieb sehe ich den Fehler im Skript nicht… Wie startest du den Dockercontainer?

Viele Grüße

Sathya

Hi

ich glaub ich hab das Problem gefunden - dein Hinweis war gut.

Starte ich homegear mit docker per commandline kommt keine Fehlermeldung.
Starte ich mit docker-compose sehe ich den Fehler.

Innerhalb des docker-compose.yml muss ich das Environment setzen.
Es sieht so aus, dass folgendes nicht funktioniert.

environment:
      HOST_USER_GID: $$(id -g)
      HOST_USER_ID: $$(id -u)
      TZ: Europe/Berlin

Die Variablen werden nicht mit dem Ergebniss von id -u oder id -g initiert sondern mit $(id -u) und $(id -g). Deshalb die Fehlermeldung.

Als Workaround trage ich jetzt die Werte von Hand ein:

environment:
  HOST_USER_GID: '1000'
  HOST_USER_ID: '1000'
1 Like

Hallo @jipp,

ok, das ist gut zu wissen!

Viele Grüße

Sathya