summaryrefslogtreecommitdiffstats
path: root/docker-entrypoint.sh
diff options
context:
space:
mode:
authorMarc Brückner <marc@ma-br.de>2018-10-02 10:45:00 +0200
committerMarc Brückner <marc@ma-br.de>2018-10-02 10:45:00 +0200
commit6eb8f3fa16f9dfcfed685d7aeed0fd5a1b2078b9 (patch)
tree373580a52fb1162d7e1d46001a281e1331a475ce /docker-entrypoint.sh
parentde7204ccda2d566bd851e25c0d427dcb5cdeeeae (diff)
added retry loop and decreased sleep time
Diffstat (limited to 'docker-entrypoint.sh')
-rwxr-xr-xdocker-entrypoint.sh27
1 files changed, 19 insertions, 8 deletions
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
index c31db1a1..6cfd5666 100755
--- a/docker-entrypoint.sh
+++ b/docker-entrypoint.sh
@@ -71,27 +71,38 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then
install_options=$install_options' --data-dir "$NEXTCLOUD_DATA_DIR"'
fi
+ install=false
if [ -n "${SQLITE_DATABASE+x}" ]; then
echo "Installing with SQLite database"
# shellcheck disable=SC2016
install_options=$install_options' --database-name "$SQLITE_DATABASE"'
- run_as "php /var/www/html/occ maintenance:install $install_options"
+ install=true
elif [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ]; then
echo "Installing with MySQL database"
# shellcheck disable=SC2016
install_options=$install_options' --database mysql --database-name "$MYSQL_DATABASE" --database-user "$MYSQL_USER" --database-pass "$MYSQL_PASSWORD" --database-host "$MYSQL_HOST"'
- echo "waiting 30s for the database to setup"
- sleep 30s
- echo "starting nexcloud installation"
- run_as "php /var/www/html/occ maintenance:install $install_options"
+ install=true
elif [ -n "${POSTGRES_DB+x}" ] && [ -n "${POSTGRES_USER+x}" ] && [ -n "${POSTGRES_PASSWORD+x}" ] && [ -n "${POSTGRES_HOST+x}" ]; then
echo "Installing with PostgreSQL database"
# shellcheck disable=SC2016
install_options=$install_options' --database pgsql --database-name "$POSTGRES_DB" --database-user "$POSTGRES_USER" --database-pass "$POSTGRES_PASSWORD" --database-host "$POSTGRES_HOST"'
- echo "waiting 10s for the database to setup"
- sleep 10s
+ install=true
+ fi
+
+ if [ "$install" = true ]; then
echo "starting nexcloud installation"
- run_as "php /var/www/html/occ maintenance:install $install_options"
+ max_retries=10
+ try=0
+ until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
+ do
+ echo "retrying install..."
+ try=$((try+1))
+ sleep 3s
+ done
+ if [ "$try" -gt "$max_retries" ]; then
+ echo "installing of nextcloud failed!"
+ exit 1
+ fi
else
echo "running web-based installer on first connect!"
fi