From 2fa2b3f47926a1e7c54ea31fed651bce6b41053e Mon Sep 17 00:00:00 2001
From: Jan Wagner <waja@cyconet.org>
Date: Wed, 11 Oct 2023 12:14:40 +0200
Subject: [PATCH] Check if db is available, not just in setup

Checking for a available database when installing is fine, but running
occ upgrade without a db available is also a problem. This checks for db
availability in every case.
---
 rootfs/usr/local/bin/run.sh   | 9 +++++++++
 rootfs/usr/local/bin/setup.sh | 8 --------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/rootfs/usr/local/bin/run.sh b/rootfs/usr/local/bin/run.sh
index 45a15ed..5f66720 100644
--- a/rootfs/usr/local/bin/run.sh
+++ b/rootfs/usr/local/bin/run.sh
@@ -15,6 +15,15 @@ if [ "$PHP_HARDENING" == "true" ] && [ ! -f /usr/local/etc/php/conf.d/snuffleupa
     cp /usr/local/etc/php/snuffleupagus/* /usr/local/etc/php/conf.d
 fi
 
+# Check if database is available
+if [ -n "${DB_TYPE}" ] && [ "${DB_TYPE}" != "sqlite3" ]; then
+  until nc -z "${DB_HOST:-nextcloud-db}" "${DB_PORT:-3306}"
+  do
+    echo "waiting for the database container..."
+    sleep 1
+  done
+fi
+
 # If new install, run setup
 if [ ! -f /nextcloud/config/config.php ]; then
     touch /nextcloud/config/CAN_INSTALL
diff --git a/rootfs/usr/local/bin/setup.sh b/rootfs/usr/local/bin/setup.sh
index 2d962a4..30c58c3 100755
--- a/rootfs/usr/local/bin/setup.sh
+++ b/rootfs/usr/local/bin/setup.sh
@@ -55,14 +55,6 @@ cat >> /nextcloud/config/autoconfig.php <<EOF;
 ?>
 EOF
 
-if [ ${DB_TYPE} != "sqlite3" ]; then
-  until nc -z "${DB_HOST:-nextcloud-db}" "${DB_PORT:-3306}"
-  do
-    echo "waiting for the database container..."
-    sleep 1
-  done
-fi
-
 echo "Starting automatic configuration..."
 # Execute setup
 (cd /nextcloud; php index.php &>/dev/null)