Add `NEXTCLOUD_INIT_LOCK` to enable shared html volume update

Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
This commit is contained in:
John Molakvoæ 2022-05-31 09:39:13 +02:00
parent d11d42bb20
commit 83d5e72596
No known key found for this signature in database
GPG Key ID: 60C25B8C072916CF
2 changed files with 7 additions and 2 deletions

View File

@ -137,6 +137,10 @@ The install and update script is only triggered when a default command is used (
- `NEXTCLOUD_UPDATE` (default: `0`)
If you share your html folder with multiple docker containers, you might want to avoid multiple processes updating the same shared volume
- `NEXTCLOUD_INIT_LOCK` (not set by default) Set it to true to enable initialization locking. Other containers will wait for the current process to finish updating the html volume to continue.
If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters:
- `REDIS_HOST` (not set by default) Name of Redis container

View File

@ -103,12 +103,13 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
fi
# If another process is syncing the html folder, wait for
# it to be done, then escape initalization
# it to be done, then escape initalization.
# You need to define the NEXTCLOUD_INIT_LOCK environment variable
lock=/var/www/html/nextcloud-init-sync.lock
count=0
limit=10
if [ -f "$lock" ]; then
if [ -f "$lock" ] && [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
until [ ! -f "$lock" ] || [ "$count" -gt "$limit" ]
do
count=$((count+1))