Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/docker.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ0WI <J0WI@users.noreply.github.com>2022-09-06 19:46:03 +0300
committerGitHub <noreply@github.com>2022-09-06 19:46:03 +0300
commit19256cdbf8c579a1487b6254d85d10fa9f75a940 (patch)
tree1c56fd5d3ac53536ceaee4e79a779fe699f17497
parent2a5bc6f3bb3b26b4fc51e7c7bf6d7f9d2c2172f3 (diff)
Allow to run with custom uid (#1812)
fix: #359, #772, #1081, #1087, #1278 Signed-off-by: J0WI <J0WI@users.noreply.github.com> Signed-off-by: J0WI <J0WI@users.noreply.github.com>
-rwxr-xr-xdocker-entrypoint.sh27
1 files changed, 25 insertions, 2 deletions
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
index 7dac0df..1e3d438 100755
--- a/docker-entrypoint.sh
+++ b/docker-entrypoint.sh
@@ -13,7 +13,7 @@ directory_empty() {
run_as() {
if [ "$(id -u)" = 0 ]; then
- su -p www-data -s /bin/sh -c "$1"
+ su -p "$user" -s /bin/sh -c "$1"
else
sh -c "$1"
fi
@@ -50,6 +50,29 @@ if expr "$1" : "apache" 1>/dev/null; then
fi
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
+ uid="$(id -u)"
+ gid="$(id -g)"
+ if [ "$uid" = '0' ]; then
+ case "$1" in
+ apache2*)
+ user="${APACHE_RUN_USER:-www-data}"
+ group="${APACHE_RUN_GROUP:-www-data}"
+
+ # strip off any '#' symbol ('#1000' is valid syntax for Apache)
+ pound='#'
+ user="${user#$pound}"
+ group="${group#$pound}"
+ ;;
+ *) # php-fpm
+ user='www-data'
+ group='www-data'
+ ;;
+ esac
+ else
+ user="$uid"
+ group="$gid"
+ fi
+
if [ -n "${REDIS_HOST+x}" ]; then
echo "Configuring Redis as session handler"
@@ -97,7 +120,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
fi
if [ "$(id -u)" = 0 ]; then
- rsync_options="-rlDog --chown www-data:root"
+ rsync_options="-rlDog --chown $user:$group"
else
rsync_options="-rlD"
fi