From 4e01e6ac26da0f3def11a3dc7adb7b6bd41d9b77 Mon Sep 17 00:00:00 2001 From: JustSem Date: Wed, 9 Feb 2022 16:11:49 +0100 Subject: [PATCH] Fix for docker(-compose) to allow the app to be run as a regular user. --- extra/entrypoint.sh | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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