mirror of
https://github.com/nextcloud/docker.git
synced 2024-11-05 22:04:58 +01:00
Run update.sh
Signed-off-by: Remi Rampin <remi@rampin.org>
This commit is contained in:
parent
4667cbe149
commit
295cdf7fb7
9 changed files with 1206 additions and 1296 deletions
|
@ -43,62 +43,7 @@ file_env() {
|
||||||
unset "$fileVar"
|
unset "$fileVar"
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null; then
|
do_install_or_upgrade() {
|
||||||
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
|
||||||
a2disconf remoteip
|
|
||||||
fi
|
|
||||||
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)
|
|
||||||
user="${user#'#'}"
|
|
||||||
group="${group#'#'}"
|
|
||||||
;;
|
|
||||||
*) # 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"
|
|
||||||
{
|
|
||||||
file_env REDIS_HOST_PASSWORD
|
|
||||||
echo 'session.save_handler = redis'
|
|
||||||
# check if redis host is an unix socket path
|
|
||||||
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
|
||||||
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
|
||||||
fi
|
|
||||||
# check if redis password has been set
|
|
||||||
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
|
||||||
fi
|
|
||||||
echo "redis.session.locking_enabled = 1"
|
|
||||||
echo "redis.session.lock_retries = -1"
|
|
||||||
# redis.session.lock_wait_time is specified in microseconds.
|
|
||||||
# Wait 10ms before retrying the lock rather than the default 2ms.
|
|
||||||
echo "redis.session.lock_wait_time = 10000"
|
|
||||||
} > /usr/local/etc/php/conf.d/redis-session.ini
|
|
||||||
fi
|
|
||||||
|
|
||||||
installed_version="0.0.0.0"
|
installed_version="0.0.0.0"
|
||||||
if [ -f /var/www/html/version.php ]; then
|
if [ -f /var/www/html/version.php ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -124,31 +69,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync_options="-rlD"
|
rsync_options="-rlD"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If another process is syncing the html folder, wait for
|
|
||||||
# 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" ] && [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
|
||||||
until [ ! -f "$lock" ] || [ "$count" -gt "$limit" ]
|
|
||||||
do
|
|
||||||
count=$((count+1))
|
|
||||||
wait=$((count*10))
|
|
||||||
echo "Another process is initializing Nextcloud. Waiting $wait seconds..."
|
|
||||||
sleep $wait
|
|
||||||
done
|
|
||||||
if [ "$count" -gt "$limit" ]; then
|
|
||||||
echo "Timeout while waiting for an ongoing initialization"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "The other process is done, assuming complete initialization"
|
|
||||||
else
|
|
||||||
# Prevent multiple images syncing simultaneously
|
|
||||||
touch $lock
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
for dir in config data custom_apps themes; do
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
|
@ -234,17 +155,86 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Initialization done, reset lock
|
|
||||||
rm $lock
|
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
# Update htaccess after init if requested
|
# Update htaccess after init if requested
|
||||||
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
||||||
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if expr "$1" : "apache" 1>/dev/null; then
|
||||||
|
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
||||||
|
a2disconf remoteip
|
||||||
|
fi
|
||||||
|
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)
|
||||||
|
user="${user#'#'}"
|
||||||
|
group="${group#'#'}"
|
||||||
|
;;
|
||||||
|
*) # 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"
|
||||||
|
{
|
||||||
|
file_env REDIS_HOST_PASSWORD
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis host is an unix socket path
|
||||||
|
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
||||||
|
fi
|
||||||
|
# check if redis password has been set
|
||||||
|
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
echo "redis.session.locking_enabled = 1"
|
||||||
|
echo "redis.session.lock_retries = -1"
|
||||||
|
# redis.session.lock_wait_time is specified in microseconds.
|
||||||
|
# Wait 10ms before retrying the lock rather than the default 2ms.
|
||||||
|
echo "redis.session.lock_wait_time = 10000"
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If another process is syncing the html folder, wait for
|
||||||
|
# it to be done, then escape initalization.
|
||||||
|
# You need to define the NEXTCLOUD_INIT_LOCK environment variable
|
||||||
|
if [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
||||||
|
(
|
||||||
|
if ! flock -n 9; then
|
||||||
|
# If we couldn't get it immediately, show a message, then wait for real
|
||||||
|
echo "Another process is initializing Nextcloud. Waiting..."
|
||||||
|
flock 9
|
||||||
|
fi
|
||||||
|
do_install_or_upgrade
|
||||||
|
) 9> /var/www/html/nextcloud-init-sync.lock
|
||||||
|
else
|
||||||
|
do_install_or_upgrade
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
|
@ -43,62 +43,7 @@ file_env() {
|
||||||
unset "$fileVar"
|
unset "$fileVar"
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null; then
|
do_install_or_upgrade() {
|
||||||
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
|
||||||
a2disconf remoteip
|
|
||||||
fi
|
|
||||||
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)
|
|
||||||
user="${user#'#'}"
|
|
||||||
group="${group#'#'}"
|
|
||||||
;;
|
|
||||||
*) # 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"
|
|
||||||
{
|
|
||||||
file_env REDIS_HOST_PASSWORD
|
|
||||||
echo 'session.save_handler = redis'
|
|
||||||
# check if redis host is an unix socket path
|
|
||||||
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
|
||||||
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
|
||||||
fi
|
|
||||||
# check if redis password has been set
|
|
||||||
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
|
||||||
fi
|
|
||||||
echo "redis.session.locking_enabled = 1"
|
|
||||||
echo "redis.session.lock_retries = -1"
|
|
||||||
# redis.session.lock_wait_time is specified in microseconds.
|
|
||||||
# Wait 10ms before retrying the lock rather than the default 2ms.
|
|
||||||
echo "redis.session.lock_wait_time = 10000"
|
|
||||||
} > /usr/local/etc/php/conf.d/redis-session.ini
|
|
||||||
fi
|
|
||||||
|
|
||||||
installed_version="0.0.0.0"
|
installed_version="0.0.0.0"
|
||||||
if [ -f /var/www/html/version.php ]; then
|
if [ -f /var/www/html/version.php ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -124,31 +69,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync_options="-rlD"
|
rsync_options="-rlD"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If another process is syncing the html folder, wait for
|
|
||||||
# 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" ] && [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
|
||||||
until [ ! -f "$lock" ] || [ "$count" -gt "$limit" ]
|
|
||||||
do
|
|
||||||
count=$((count+1))
|
|
||||||
wait=$((count*10))
|
|
||||||
echo "Another process is initializing Nextcloud. Waiting $wait seconds..."
|
|
||||||
sleep $wait
|
|
||||||
done
|
|
||||||
if [ "$count" -gt "$limit" ]; then
|
|
||||||
echo "Timeout while waiting for an ongoing initialization"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "The other process is done, assuming complete initialization"
|
|
||||||
else
|
|
||||||
# Prevent multiple images syncing simultaneously
|
|
||||||
touch $lock
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
for dir in config data custom_apps themes; do
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
|
@ -234,17 +155,86 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Initialization done, reset lock
|
|
||||||
rm $lock
|
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
# Update htaccess after init if requested
|
# Update htaccess after init if requested
|
||||||
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
||||||
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if expr "$1" : "apache" 1>/dev/null; then
|
||||||
|
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
||||||
|
a2disconf remoteip
|
||||||
|
fi
|
||||||
|
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)
|
||||||
|
user="${user#'#'}"
|
||||||
|
group="${group#'#'}"
|
||||||
|
;;
|
||||||
|
*) # 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"
|
||||||
|
{
|
||||||
|
file_env REDIS_HOST_PASSWORD
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis host is an unix socket path
|
||||||
|
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
||||||
|
fi
|
||||||
|
# check if redis password has been set
|
||||||
|
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
echo "redis.session.locking_enabled = 1"
|
||||||
|
echo "redis.session.lock_retries = -1"
|
||||||
|
# redis.session.lock_wait_time is specified in microseconds.
|
||||||
|
# Wait 10ms before retrying the lock rather than the default 2ms.
|
||||||
|
echo "redis.session.lock_wait_time = 10000"
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If another process is syncing the html folder, wait for
|
||||||
|
# it to be done, then escape initalization.
|
||||||
|
# You need to define the NEXTCLOUD_INIT_LOCK environment variable
|
||||||
|
if [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
||||||
|
(
|
||||||
|
if ! flock -n 9; then
|
||||||
|
# If we couldn't get it immediately, show a message, then wait for real
|
||||||
|
echo "Another process is initializing Nextcloud. Waiting..."
|
||||||
|
flock 9
|
||||||
|
fi
|
||||||
|
do_install_or_upgrade
|
||||||
|
) 9> /var/www/html/nextcloud-init-sync.lock
|
||||||
|
else
|
||||||
|
do_install_or_upgrade
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
|
@ -43,62 +43,7 @@ file_env() {
|
||||||
unset "$fileVar"
|
unset "$fileVar"
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null; then
|
do_install_or_upgrade() {
|
||||||
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
|
||||||
a2disconf remoteip
|
|
||||||
fi
|
|
||||||
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)
|
|
||||||
user="${user#'#'}"
|
|
||||||
group="${group#'#'}"
|
|
||||||
;;
|
|
||||||
*) # 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"
|
|
||||||
{
|
|
||||||
file_env REDIS_HOST_PASSWORD
|
|
||||||
echo 'session.save_handler = redis'
|
|
||||||
# check if redis host is an unix socket path
|
|
||||||
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
|
||||||
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
|
||||||
fi
|
|
||||||
# check if redis password has been set
|
|
||||||
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
|
||||||
fi
|
|
||||||
echo "redis.session.locking_enabled = 1"
|
|
||||||
echo "redis.session.lock_retries = -1"
|
|
||||||
# redis.session.lock_wait_time is specified in microseconds.
|
|
||||||
# Wait 10ms before retrying the lock rather than the default 2ms.
|
|
||||||
echo "redis.session.lock_wait_time = 10000"
|
|
||||||
} > /usr/local/etc/php/conf.d/redis-session.ini
|
|
||||||
fi
|
|
||||||
|
|
||||||
installed_version="0.0.0.0"
|
installed_version="0.0.0.0"
|
||||||
if [ -f /var/www/html/version.php ]; then
|
if [ -f /var/www/html/version.php ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -124,31 +69,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync_options="-rlD"
|
rsync_options="-rlD"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If another process is syncing the html folder, wait for
|
|
||||||
# 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" ] && [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
|
||||||
until [ ! -f "$lock" ] || [ "$count" -gt "$limit" ]
|
|
||||||
do
|
|
||||||
count=$((count+1))
|
|
||||||
wait=$((count*10))
|
|
||||||
echo "Another process is initializing Nextcloud. Waiting $wait seconds..."
|
|
||||||
sleep $wait
|
|
||||||
done
|
|
||||||
if [ "$count" -gt "$limit" ]; then
|
|
||||||
echo "Timeout while waiting for an ongoing initialization"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "The other process is done, assuming complete initialization"
|
|
||||||
else
|
|
||||||
# Prevent multiple images syncing simultaneously
|
|
||||||
touch $lock
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
for dir in config data custom_apps themes; do
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
|
@ -234,17 +155,86 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Initialization done, reset lock
|
|
||||||
rm $lock
|
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
# Update htaccess after init if requested
|
# Update htaccess after init if requested
|
||||||
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
||||||
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if expr "$1" : "apache" 1>/dev/null; then
|
||||||
|
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
||||||
|
a2disconf remoteip
|
||||||
|
fi
|
||||||
|
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)
|
||||||
|
user="${user#'#'}"
|
||||||
|
group="${group#'#'}"
|
||||||
|
;;
|
||||||
|
*) # 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"
|
||||||
|
{
|
||||||
|
file_env REDIS_HOST_PASSWORD
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis host is an unix socket path
|
||||||
|
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
||||||
|
fi
|
||||||
|
# check if redis password has been set
|
||||||
|
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
echo "redis.session.locking_enabled = 1"
|
||||||
|
echo "redis.session.lock_retries = -1"
|
||||||
|
# redis.session.lock_wait_time is specified in microseconds.
|
||||||
|
# Wait 10ms before retrying the lock rather than the default 2ms.
|
||||||
|
echo "redis.session.lock_wait_time = 10000"
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If another process is syncing the html folder, wait for
|
||||||
|
# it to be done, then escape initalization.
|
||||||
|
# You need to define the NEXTCLOUD_INIT_LOCK environment variable
|
||||||
|
if [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
||||||
|
(
|
||||||
|
if ! flock -n 9; then
|
||||||
|
# If we couldn't get it immediately, show a message, then wait for real
|
||||||
|
echo "Another process is initializing Nextcloud. Waiting..."
|
||||||
|
flock 9
|
||||||
|
fi
|
||||||
|
do_install_or_upgrade
|
||||||
|
) 9> /var/www/html/nextcloud-init-sync.lock
|
||||||
|
else
|
||||||
|
do_install_or_upgrade
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
|
@ -43,62 +43,7 @@ file_env() {
|
||||||
unset "$fileVar"
|
unset "$fileVar"
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null; then
|
do_install_or_upgrade() {
|
||||||
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
|
||||||
a2disconf remoteip
|
|
||||||
fi
|
|
||||||
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)
|
|
||||||
user="${user#'#'}"
|
|
||||||
group="${group#'#'}"
|
|
||||||
;;
|
|
||||||
*) # 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"
|
|
||||||
{
|
|
||||||
file_env REDIS_HOST_PASSWORD
|
|
||||||
echo 'session.save_handler = redis'
|
|
||||||
# check if redis host is an unix socket path
|
|
||||||
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
|
||||||
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
|
||||||
fi
|
|
||||||
# check if redis password has been set
|
|
||||||
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
|
||||||
fi
|
|
||||||
echo "redis.session.locking_enabled = 1"
|
|
||||||
echo "redis.session.lock_retries = -1"
|
|
||||||
# redis.session.lock_wait_time is specified in microseconds.
|
|
||||||
# Wait 10ms before retrying the lock rather than the default 2ms.
|
|
||||||
echo "redis.session.lock_wait_time = 10000"
|
|
||||||
} > /usr/local/etc/php/conf.d/redis-session.ini
|
|
||||||
fi
|
|
||||||
|
|
||||||
installed_version="0.0.0.0"
|
installed_version="0.0.0.0"
|
||||||
if [ -f /var/www/html/version.php ]; then
|
if [ -f /var/www/html/version.php ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -124,31 +69,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync_options="-rlD"
|
rsync_options="-rlD"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If another process is syncing the html folder, wait for
|
|
||||||
# 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" ] && [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
|
||||||
until [ ! -f "$lock" ] || [ "$count" -gt "$limit" ]
|
|
||||||
do
|
|
||||||
count=$((count+1))
|
|
||||||
wait=$((count*10))
|
|
||||||
echo "Another process is initializing Nextcloud. Waiting $wait seconds..."
|
|
||||||
sleep $wait
|
|
||||||
done
|
|
||||||
if [ "$count" -gt "$limit" ]; then
|
|
||||||
echo "Timeout while waiting for an ongoing initialization"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "The other process is done, assuming complete initialization"
|
|
||||||
else
|
|
||||||
# Prevent multiple images syncing simultaneously
|
|
||||||
touch $lock
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
for dir in config data custom_apps themes; do
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
|
@ -234,17 +155,86 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Initialization done, reset lock
|
|
||||||
rm $lock
|
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
# Update htaccess after init if requested
|
# Update htaccess after init if requested
|
||||||
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
||||||
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if expr "$1" : "apache" 1>/dev/null; then
|
||||||
|
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
||||||
|
a2disconf remoteip
|
||||||
|
fi
|
||||||
|
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)
|
||||||
|
user="${user#'#'}"
|
||||||
|
group="${group#'#'}"
|
||||||
|
;;
|
||||||
|
*) # 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"
|
||||||
|
{
|
||||||
|
file_env REDIS_HOST_PASSWORD
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis host is an unix socket path
|
||||||
|
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
||||||
|
fi
|
||||||
|
# check if redis password has been set
|
||||||
|
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
echo "redis.session.locking_enabled = 1"
|
||||||
|
echo "redis.session.lock_retries = -1"
|
||||||
|
# redis.session.lock_wait_time is specified in microseconds.
|
||||||
|
# Wait 10ms before retrying the lock rather than the default 2ms.
|
||||||
|
echo "redis.session.lock_wait_time = 10000"
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If another process is syncing the html folder, wait for
|
||||||
|
# it to be done, then escape initalization.
|
||||||
|
# You need to define the NEXTCLOUD_INIT_LOCK environment variable
|
||||||
|
if [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
||||||
|
(
|
||||||
|
if ! flock -n 9; then
|
||||||
|
# If we couldn't get it immediately, show a message, then wait for real
|
||||||
|
echo "Another process is initializing Nextcloud. Waiting..."
|
||||||
|
flock 9
|
||||||
|
fi
|
||||||
|
do_install_or_upgrade
|
||||||
|
) 9> /var/www/html/nextcloud-init-sync.lock
|
||||||
|
else
|
||||||
|
do_install_or_upgrade
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
|
@ -43,62 +43,7 @@ file_env() {
|
||||||
unset "$fileVar"
|
unset "$fileVar"
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null; then
|
do_install_or_upgrade() {
|
||||||
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
|
||||||
a2disconf remoteip
|
|
||||||
fi
|
|
||||||
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)
|
|
||||||
user="${user#'#'}"
|
|
||||||
group="${group#'#'}"
|
|
||||||
;;
|
|
||||||
*) # 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"
|
|
||||||
{
|
|
||||||
file_env REDIS_HOST_PASSWORD
|
|
||||||
echo 'session.save_handler = redis'
|
|
||||||
# check if redis host is an unix socket path
|
|
||||||
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
|
||||||
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
|
||||||
fi
|
|
||||||
# check if redis password has been set
|
|
||||||
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
|
||||||
fi
|
|
||||||
echo "redis.session.locking_enabled = 1"
|
|
||||||
echo "redis.session.lock_retries = -1"
|
|
||||||
# redis.session.lock_wait_time is specified in microseconds.
|
|
||||||
# Wait 10ms before retrying the lock rather than the default 2ms.
|
|
||||||
echo "redis.session.lock_wait_time = 10000"
|
|
||||||
} > /usr/local/etc/php/conf.d/redis-session.ini
|
|
||||||
fi
|
|
||||||
|
|
||||||
installed_version="0.0.0.0"
|
installed_version="0.0.0.0"
|
||||||
if [ -f /var/www/html/version.php ]; then
|
if [ -f /var/www/html/version.php ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -124,31 +69,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync_options="-rlD"
|
rsync_options="-rlD"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If another process is syncing the html folder, wait for
|
|
||||||
# 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" ] && [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
|
||||||
until [ ! -f "$lock" ] || [ "$count" -gt "$limit" ]
|
|
||||||
do
|
|
||||||
count=$((count+1))
|
|
||||||
wait=$((count*10))
|
|
||||||
echo "Another process is initializing Nextcloud. Waiting $wait seconds..."
|
|
||||||
sleep $wait
|
|
||||||
done
|
|
||||||
if [ "$count" -gt "$limit" ]; then
|
|
||||||
echo "Timeout while waiting for an ongoing initialization"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "The other process is done, assuming complete initialization"
|
|
||||||
else
|
|
||||||
# Prevent multiple images syncing simultaneously
|
|
||||||
touch $lock
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
for dir in config data custom_apps themes; do
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
|
@ -234,17 +155,86 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Initialization done, reset lock
|
|
||||||
rm $lock
|
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
# Update htaccess after init if requested
|
# Update htaccess after init if requested
|
||||||
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
||||||
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if expr "$1" : "apache" 1>/dev/null; then
|
||||||
|
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
||||||
|
a2disconf remoteip
|
||||||
|
fi
|
||||||
|
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)
|
||||||
|
user="${user#'#'}"
|
||||||
|
group="${group#'#'}"
|
||||||
|
;;
|
||||||
|
*) # 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"
|
||||||
|
{
|
||||||
|
file_env REDIS_HOST_PASSWORD
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis host is an unix socket path
|
||||||
|
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
||||||
|
fi
|
||||||
|
# check if redis password has been set
|
||||||
|
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
echo "redis.session.locking_enabled = 1"
|
||||||
|
echo "redis.session.lock_retries = -1"
|
||||||
|
# redis.session.lock_wait_time is specified in microseconds.
|
||||||
|
# Wait 10ms before retrying the lock rather than the default 2ms.
|
||||||
|
echo "redis.session.lock_wait_time = 10000"
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If another process is syncing the html folder, wait for
|
||||||
|
# it to be done, then escape initalization.
|
||||||
|
# You need to define the NEXTCLOUD_INIT_LOCK environment variable
|
||||||
|
if [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
||||||
|
(
|
||||||
|
if ! flock -n 9; then
|
||||||
|
# If we couldn't get it immediately, show a message, then wait for real
|
||||||
|
echo "Another process is initializing Nextcloud. Waiting..."
|
||||||
|
flock 9
|
||||||
|
fi
|
||||||
|
do_install_or_upgrade
|
||||||
|
) 9> /var/www/html/nextcloud-init-sync.lock
|
||||||
|
else
|
||||||
|
do_install_or_upgrade
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
|
@ -43,62 +43,7 @@ file_env() {
|
||||||
unset "$fileVar"
|
unset "$fileVar"
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null; then
|
do_install_or_upgrade() {
|
||||||
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
|
||||||
a2disconf remoteip
|
|
||||||
fi
|
|
||||||
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)
|
|
||||||
user="${user#'#'}"
|
|
||||||
group="${group#'#'}"
|
|
||||||
;;
|
|
||||||
*) # 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"
|
|
||||||
{
|
|
||||||
file_env REDIS_HOST_PASSWORD
|
|
||||||
echo 'session.save_handler = redis'
|
|
||||||
# check if redis host is an unix socket path
|
|
||||||
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
|
||||||
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
|
||||||
fi
|
|
||||||
# check if redis password has been set
|
|
||||||
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
|
||||||
fi
|
|
||||||
echo "redis.session.locking_enabled = 1"
|
|
||||||
echo "redis.session.lock_retries = -1"
|
|
||||||
# redis.session.lock_wait_time is specified in microseconds.
|
|
||||||
# Wait 10ms before retrying the lock rather than the default 2ms.
|
|
||||||
echo "redis.session.lock_wait_time = 10000"
|
|
||||||
} > /usr/local/etc/php/conf.d/redis-session.ini
|
|
||||||
fi
|
|
||||||
|
|
||||||
installed_version="0.0.0.0"
|
installed_version="0.0.0.0"
|
||||||
if [ -f /var/www/html/version.php ]; then
|
if [ -f /var/www/html/version.php ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -124,31 +69,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync_options="-rlD"
|
rsync_options="-rlD"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If another process is syncing the html folder, wait for
|
|
||||||
# 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" ] && [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
|
||||||
until [ ! -f "$lock" ] || [ "$count" -gt "$limit" ]
|
|
||||||
do
|
|
||||||
count=$((count+1))
|
|
||||||
wait=$((count*10))
|
|
||||||
echo "Another process is initializing Nextcloud. Waiting $wait seconds..."
|
|
||||||
sleep $wait
|
|
||||||
done
|
|
||||||
if [ "$count" -gt "$limit" ]; then
|
|
||||||
echo "Timeout while waiting for an ongoing initialization"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "The other process is done, assuming complete initialization"
|
|
||||||
else
|
|
||||||
# Prevent multiple images syncing simultaneously
|
|
||||||
touch $lock
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
for dir in config data custom_apps themes; do
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
|
@ -234,17 +155,86 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Initialization done, reset lock
|
|
||||||
rm $lock
|
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
# Update htaccess after init if requested
|
# Update htaccess after init if requested
|
||||||
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
||||||
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if expr "$1" : "apache" 1>/dev/null; then
|
||||||
|
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
||||||
|
a2disconf remoteip
|
||||||
|
fi
|
||||||
|
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)
|
||||||
|
user="${user#'#'}"
|
||||||
|
group="${group#'#'}"
|
||||||
|
;;
|
||||||
|
*) # 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"
|
||||||
|
{
|
||||||
|
file_env REDIS_HOST_PASSWORD
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis host is an unix socket path
|
||||||
|
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
||||||
|
fi
|
||||||
|
# check if redis password has been set
|
||||||
|
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
echo "redis.session.locking_enabled = 1"
|
||||||
|
echo "redis.session.lock_retries = -1"
|
||||||
|
# redis.session.lock_wait_time is specified in microseconds.
|
||||||
|
# Wait 10ms before retrying the lock rather than the default 2ms.
|
||||||
|
echo "redis.session.lock_wait_time = 10000"
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If another process is syncing the html folder, wait for
|
||||||
|
# it to be done, then escape initalization.
|
||||||
|
# You need to define the NEXTCLOUD_INIT_LOCK environment variable
|
||||||
|
if [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
||||||
|
(
|
||||||
|
if ! flock -n 9; then
|
||||||
|
# If we couldn't get it immediately, show a message, then wait for real
|
||||||
|
echo "Another process is initializing Nextcloud. Waiting..."
|
||||||
|
flock 9
|
||||||
|
fi
|
||||||
|
do_install_or_upgrade
|
||||||
|
) 9> /var/www/html/nextcloud-init-sync.lock
|
||||||
|
else
|
||||||
|
do_install_or_upgrade
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
|
@ -43,62 +43,7 @@ file_env() {
|
||||||
unset "$fileVar"
|
unset "$fileVar"
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null; then
|
do_install_or_upgrade() {
|
||||||
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
|
||||||
a2disconf remoteip
|
|
||||||
fi
|
|
||||||
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)
|
|
||||||
user="${user#'#'}"
|
|
||||||
group="${group#'#'}"
|
|
||||||
;;
|
|
||||||
*) # 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"
|
|
||||||
{
|
|
||||||
file_env REDIS_HOST_PASSWORD
|
|
||||||
echo 'session.save_handler = redis'
|
|
||||||
# check if redis host is an unix socket path
|
|
||||||
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
|
||||||
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
|
||||||
fi
|
|
||||||
# check if redis password has been set
|
|
||||||
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
|
||||||
fi
|
|
||||||
echo "redis.session.locking_enabled = 1"
|
|
||||||
echo "redis.session.lock_retries = -1"
|
|
||||||
# redis.session.lock_wait_time is specified in microseconds.
|
|
||||||
# Wait 10ms before retrying the lock rather than the default 2ms.
|
|
||||||
echo "redis.session.lock_wait_time = 10000"
|
|
||||||
} > /usr/local/etc/php/conf.d/redis-session.ini
|
|
||||||
fi
|
|
||||||
|
|
||||||
installed_version="0.0.0.0"
|
installed_version="0.0.0.0"
|
||||||
if [ -f /var/www/html/version.php ]; then
|
if [ -f /var/www/html/version.php ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -124,31 +69,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync_options="-rlD"
|
rsync_options="-rlD"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If another process is syncing the html folder, wait for
|
|
||||||
# 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" ] && [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
|
||||||
until [ ! -f "$lock" ] || [ "$count" -gt "$limit" ]
|
|
||||||
do
|
|
||||||
count=$((count+1))
|
|
||||||
wait=$((count*10))
|
|
||||||
echo "Another process is initializing Nextcloud. Waiting $wait seconds..."
|
|
||||||
sleep $wait
|
|
||||||
done
|
|
||||||
if [ "$count" -gt "$limit" ]; then
|
|
||||||
echo "Timeout while waiting for an ongoing initialization"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "The other process is done, assuming complete initialization"
|
|
||||||
else
|
|
||||||
# Prevent multiple images syncing simultaneously
|
|
||||||
touch $lock
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
for dir in config data custom_apps themes; do
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
|
@ -234,17 +155,86 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Initialization done, reset lock
|
|
||||||
rm $lock
|
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
# Update htaccess after init if requested
|
# Update htaccess after init if requested
|
||||||
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
||||||
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if expr "$1" : "apache" 1>/dev/null; then
|
||||||
|
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
||||||
|
a2disconf remoteip
|
||||||
|
fi
|
||||||
|
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)
|
||||||
|
user="${user#'#'}"
|
||||||
|
group="${group#'#'}"
|
||||||
|
;;
|
||||||
|
*) # 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"
|
||||||
|
{
|
||||||
|
file_env REDIS_HOST_PASSWORD
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis host is an unix socket path
|
||||||
|
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
||||||
|
fi
|
||||||
|
# check if redis password has been set
|
||||||
|
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
echo "redis.session.locking_enabled = 1"
|
||||||
|
echo "redis.session.lock_retries = -1"
|
||||||
|
# redis.session.lock_wait_time is specified in microseconds.
|
||||||
|
# Wait 10ms before retrying the lock rather than the default 2ms.
|
||||||
|
echo "redis.session.lock_wait_time = 10000"
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If another process is syncing the html folder, wait for
|
||||||
|
# it to be done, then escape initalization.
|
||||||
|
# You need to define the NEXTCLOUD_INIT_LOCK environment variable
|
||||||
|
if [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
||||||
|
(
|
||||||
|
if ! flock -n 9; then
|
||||||
|
# If we couldn't get it immediately, show a message, then wait for real
|
||||||
|
echo "Another process is initializing Nextcloud. Waiting..."
|
||||||
|
flock 9
|
||||||
|
fi
|
||||||
|
do_install_or_upgrade
|
||||||
|
) 9> /var/www/html/nextcloud-init-sync.lock
|
||||||
|
else
|
||||||
|
do_install_or_upgrade
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
|
@ -43,62 +43,7 @@ file_env() {
|
||||||
unset "$fileVar"
|
unset "$fileVar"
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null; then
|
do_install_or_upgrade() {
|
||||||
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
|
||||||
a2disconf remoteip
|
|
||||||
fi
|
|
||||||
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)
|
|
||||||
user="${user#'#'}"
|
|
||||||
group="${group#'#'}"
|
|
||||||
;;
|
|
||||||
*) # 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"
|
|
||||||
{
|
|
||||||
file_env REDIS_HOST_PASSWORD
|
|
||||||
echo 'session.save_handler = redis'
|
|
||||||
# check if redis host is an unix socket path
|
|
||||||
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
|
||||||
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
|
||||||
fi
|
|
||||||
# check if redis password has been set
|
|
||||||
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
|
||||||
fi
|
|
||||||
echo "redis.session.locking_enabled = 1"
|
|
||||||
echo "redis.session.lock_retries = -1"
|
|
||||||
# redis.session.lock_wait_time is specified in microseconds.
|
|
||||||
# Wait 10ms before retrying the lock rather than the default 2ms.
|
|
||||||
echo "redis.session.lock_wait_time = 10000"
|
|
||||||
} > /usr/local/etc/php/conf.d/redis-session.ini
|
|
||||||
fi
|
|
||||||
|
|
||||||
installed_version="0.0.0.0"
|
installed_version="0.0.0.0"
|
||||||
if [ -f /var/www/html/version.php ]; then
|
if [ -f /var/www/html/version.php ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -124,31 +69,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync_options="-rlD"
|
rsync_options="-rlD"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If another process is syncing the html folder, wait for
|
|
||||||
# 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" ] && [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
|
||||||
until [ ! -f "$lock" ] || [ "$count" -gt "$limit" ]
|
|
||||||
do
|
|
||||||
count=$((count+1))
|
|
||||||
wait=$((count*10))
|
|
||||||
echo "Another process is initializing Nextcloud. Waiting $wait seconds..."
|
|
||||||
sleep $wait
|
|
||||||
done
|
|
||||||
if [ "$count" -gt "$limit" ]; then
|
|
||||||
echo "Timeout while waiting for an ongoing initialization"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "The other process is done, assuming complete initialization"
|
|
||||||
else
|
|
||||||
# Prevent multiple images syncing simultaneously
|
|
||||||
touch $lock
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
for dir in config data custom_apps themes; do
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
|
@ -234,17 +155,86 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Initialization done, reset lock
|
|
||||||
rm $lock
|
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
# Update htaccess after init if requested
|
# Update htaccess after init if requested
|
||||||
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
||||||
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if expr "$1" : "apache" 1>/dev/null; then
|
||||||
|
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
||||||
|
a2disconf remoteip
|
||||||
|
fi
|
||||||
|
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)
|
||||||
|
user="${user#'#'}"
|
||||||
|
group="${group#'#'}"
|
||||||
|
;;
|
||||||
|
*) # 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"
|
||||||
|
{
|
||||||
|
file_env REDIS_HOST_PASSWORD
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis host is an unix socket path
|
||||||
|
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
||||||
|
fi
|
||||||
|
# check if redis password has been set
|
||||||
|
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
echo "redis.session.locking_enabled = 1"
|
||||||
|
echo "redis.session.lock_retries = -1"
|
||||||
|
# redis.session.lock_wait_time is specified in microseconds.
|
||||||
|
# Wait 10ms before retrying the lock rather than the default 2ms.
|
||||||
|
echo "redis.session.lock_wait_time = 10000"
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If another process is syncing the html folder, wait for
|
||||||
|
# it to be done, then escape initalization.
|
||||||
|
# You need to define the NEXTCLOUD_INIT_LOCK environment variable
|
||||||
|
if [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
||||||
|
(
|
||||||
|
if ! flock -n 9; then
|
||||||
|
# If we couldn't get it immediately, show a message, then wait for real
|
||||||
|
echo "Another process is initializing Nextcloud. Waiting..."
|
||||||
|
flock 9
|
||||||
|
fi
|
||||||
|
do_install_or_upgrade
|
||||||
|
) 9> /var/www/html/nextcloud-init-sync.lock
|
||||||
|
else
|
||||||
|
do_install_or_upgrade
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
|
@ -43,62 +43,7 @@ file_env() {
|
||||||
unset "$fileVar"
|
unset "$fileVar"
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null; then
|
do_install_or_upgrade() {
|
||||||
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
|
||||||
a2disconf remoteip
|
|
||||||
fi
|
|
||||||
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)
|
|
||||||
user="${user#'#'}"
|
|
||||||
group="${group#'#'}"
|
|
||||||
;;
|
|
||||||
*) # 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"
|
|
||||||
{
|
|
||||||
file_env REDIS_HOST_PASSWORD
|
|
||||||
echo 'session.save_handler = redis'
|
|
||||||
# check if redis host is an unix socket path
|
|
||||||
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
|
||||||
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
|
||||||
fi
|
|
||||||
# check if redis password has been set
|
|
||||||
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
|
||||||
else
|
|
||||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
|
||||||
fi
|
|
||||||
echo "redis.session.locking_enabled = 1"
|
|
||||||
echo "redis.session.lock_retries = -1"
|
|
||||||
# redis.session.lock_wait_time is specified in microseconds.
|
|
||||||
# Wait 10ms before retrying the lock rather than the default 2ms.
|
|
||||||
echo "redis.session.lock_wait_time = 10000"
|
|
||||||
} > /usr/local/etc/php/conf.d/redis-session.ini
|
|
||||||
fi
|
|
||||||
|
|
||||||
installed_version="0.0.0.0"
|
installed_version="0.0.0.0"
|
||||||
if [ -f /var/www/html/version.php ]; then
|
if [ -f /var/www/html/version.php ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -124,31 +69,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync_options="-rlD"
|
rsync_options="-rlD"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If another process is syncing the html folder, wait for
|
|
||||||
# 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" ] && [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
|
||||||
until [ ! -f "$lock" ] || [ "$count" -gt "$limit" ]
|
|
||||||
do
|
|
||||||
count=$((count+1))
|
|
||||||
wait=$((count*10))
|
|
||||||
echo "Another process is initializing Nextcloud. Waiting $wait seconds..."
|
|
||||||
sleep $wait
|
|
||||||
done
|
|
||||||
if [ "$count" -gt "$limit" ]; then
|
|
||||||
echo "Timeout while waiting for an ongoing initialization"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "The other process is done, assuming complete initialization"
|
|
||||||
else
|
|
||||||
# Prevent multiple images syncing simultaneously
|
|
||||||
touch $lock
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
for dir in config data custom_apps themes; do
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
|
@ -234,17 +155,86 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Initialization done, reset lock
|
|
||||||
rm $lock
|
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
# Update htaccess after init if requested
|
# Update htaccess after init if requested
|
||||||
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
if [ -n "${NEXTCLOUD_INIT_HTACCESS+x}" ] && [ "$installed_version" != "0.0.0.0" ]; then
|
||||||
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
run_as 'php /var/www/html/occ maintenance:update:htaccess'
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if expr "$1" : "apache" 1>/dev/null; then
|
||||||
|
if [ -n "${APACHE_DISABLE_REWRITE_IP+x}" ]; then
|
||||||
|
a2disconf remoteip
|
||||||
|
fi
|
||||||
|
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)
|
||||||
|
user="${user#'#'}"
|
||||||
|
group="${group#'#'}"
|
||||||
|
;;
|
||||||
|
*) # 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"
|
||||||
|
{
|
||||||
|
file_env REDIS_HOST_PASSWORD
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis host is an unix socket path
|
||||||
|
if [ "$(echo "$REDIS_HOST" | cut -c1-1)" = "/" ]; then
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"unix://${REDIS_HOST}\""
|
||||||
|
fi
|
||||||
|
# check if redis password has been set
|
||||||
|
elif [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
echo "redis.session.locking_enabled = 1"
|
||||||
|
echo "redis.session.lock_retries = -1"
|
||||||
|
# redis.session.lock_wait_time is specified in microseconds.
|
||||||
|
# Wait 10ms before retrying the lock rather than the default 2ms.
|
||||||
|
echo "redis.session.lock_wait_time = 10000"
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If another process is syncing the html folder, wait for
|
||||||
|
# it to be done, then escape initalization.
|
||||||
|
# You need to define the NEXTCLOUD_INIT_LOCK environment variable
|
||||||
|
if [ -n "${NEXTCLOUD_INIT_LOCK+x}" ]; then
|
||||||
|
(
|
||||||
|
if ! flock -n 9; then
|
||||||
|
# If we couldn't get it immediately, show a message, then wait for real
|
||||||
|
echo "Another process is initializing Nextcloud. Waiting..."
|
||||||
|
flock 9
|
||||||
|
fi
|
||||||
|
do_install_or_upgrade
|
||||||
|
) 9> /var/www/html/nextcloud-init-sync.lock
|
||||||
|
else
|
||||||
|
do_install_or_upgrade
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
Loading…
Reference in a new issue