[PATCH] docker: increase database connection timeout

Andrew Donnellan andrew.donnellan at au1.ibm.com
Thu May 25 15:36:18 AEST 2017


When starting the Docker environment, if the web container can't see the
database immediately, it waits 5 seconds, tries again, then waits 15
seconds more to account for first-time start-ups where it takes a bit
longer for the database to be initialised.

Some of us, unfortunately, have slow computers with slow mechanical hard
drives which take just a bit longer. Increase the second timeout from 15
seconds to 60 seconds, testing every 5 seconds.

Cc: Daniel Axtens <dja at axtens.net>
Signed-off-by: Andrew Donnellan <andrew.donnellan at au1.ibm.com>
---
 tools/docker/entrypoint.sh | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/tools/docker/entrypoint.sh b/tools/docker/entrypoint.sh
index 5a23fa3..949d8af 100755
--- a/tools/docker/entrypoint.sh
+++ b/tools/docker/entrypoint.sh
@@ -53,8 +53,13 @@ if ! test_db_connection; then
     sleep 5
     if ! test_db_connection; then
         echo "Still cannot connect to MySQL."
-        echo "Maybe you are starting the db for the first time. Waiting 15 seconds."
-        sleep 15
+        echo "Maybe you are starting the db for the first time. Waiting up to 60 seconds."
+        for i in {0..9}; do
+            sleep 5
+            if test_db_connection; then
+                break
+            fi
+        done
         if ! test_db_connection; then
             echo "Still cannot connect to MySQL. Giving up."
             echo "Are you using docker-compose? If not, have you set up the link correctly?"
-- 
Andrew Donnellan              OzLabs, ADL Canberra
andrew.donnellan at au1.ibm.com  IBM Australia Limited



More information about the Patchwork mailing list