From 074445ddbc9fd93d3279205b5fe608d4b9473caf Mon Sep 17 00:00:00 2001 From: Fabio Pagnotta Date: Sun, 14 Jul 2024 19:43:25 +0200 Subject: [PATCH] Adds USERMAP_NOPERM_CHANGE env Adds a new USERMAP_NOPERM_CHANGE to disable recursive permission change on the home folder of paperless. On some systems (where the user uses slow storage such as HDD) this operation takes quite a while. The default behavior is to enable the recursive permission change. The default value is false. If this is true, the container avoids recursive permission change as documented here: https://github.com/paperless-ngx/paperless-ngx/discussions/5086 and in the man page. --- docker/docker-entrypoint.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index 017e37384..c18ff2705 100755 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -8,11 +8,20 @@ map_uidgid() { local -r usermap_original_gid=$(id -g paperless) local -r usermap_new_uid=${USERMAP_UID:-$usermap_original_uid} local -r usermap_new_gid=${USERMAP_GID:-${usermap_original_gid:-$usermap_new_uid}} - if [[ ${usermap_new_uid} != "${usermap_original_uid}" || ${usermap_new_gid} != "${usermap_original_gid}" ]]; then + local -r usermap_noperm_change=${USERMAP_NOPERM_CHANGE:-false} + if [[ ${usermap_new_uid} != "${usermap_original_uid}" || ${usermap_new_gid} != "${usermap_original_gid}" ]]; then echo "Mapping UID and GID for paperless:paperless to $usermap_new_uid:$usermap_new_gid" + # Avoids changing the default permissions for the root folder of paperless + if [[ ${usermap_noperm_change} == "true" ]]; then + chown root:root /usr/src/paperless + fi usermod -o -u "${usermap_new_uid}" paperless groupmod -o -g "${usermap_new_gid}" paperless - fi + # Avoids changing the default permissions for the root folder of paperless + if [[ ${usermap_noperm_change} == "true" ]]; then + chown paperless:paperless /usr/src/paperless + fi + fi } map_folders() {