diff --git a/extra/entrypoint.sh b/extra/entrypoint.sh index 23c4f0177..93895da52 100644 --- a/extra/entrypoint.sh +++ b/extra/entrypoint.sh @@ -2,8 +2,10 @@ # set -e Exit the script if an error happens set -e -PUID=${PUID=0} -PGID=${PGID=0} + +#Setting the PUID and PGID variable to the ID's we've actually launched as, instead of some passed environment variable. +PUID=$(id -u) +PGID=$(id -g) files_ownership () { # -h Changes the ownership of an encountered symbolic link and not that of the file or directory pointed to by the symbolic link. @@ -18,4 +20,11 @@ files_ownership echo "==> Starting application with user $PUID group $PGID" # --clear-groups Clear supplementary groups. -exec setpriv --reuid "$PUID" --regid "$PGID" --clear-groups "$@" +if [ $(id -u) -eq 0 ]; +then + #We're running as root, so we can use setpriv without problems. + exec setpriv --reuid "$PUID" --regid "$PGID" --clear-groups "$@" +else + #We're running as a regular user, so we'll launch the app as one. + exec "$@" +fi