From 97168872c8a5f0414eeaad4f8db41c33d789a8dd Mon Sep 17 00:00:00 2001 From: Flo Bieringer <wertfrei@icloud.com> Date: Sat, 19 Jun 2021 15:54:29 +0200 Subject: [PATCH] Install only when no database tables are there --- docker-entrypoint.sh | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 0920f61..75c034a 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -12,23 +12,26 @@ if [ ! -f $CONFIGFILE ]; then cp "$DOCKERCONFIGFILE" "$CONFIGFILE" cp "$CONF.dist" "$CONF" - - # Setup mysql database - echo "INSTALL DB" +fi # wait until MySQL is really available - maxcounter=45 - - counter=1 - while ! mysql -u $MYSQL_USER -h $MYSQL_HOST -p$MYSQL_PASSWORD -e "show databases;" > /dev/null 2>&1; do - sleep 1 - counter=`expr $counter + 1` - if [ $counter -gt $maxcounter ]; then - >&2 echo "We have been waiting for MySQL too long already; failing." - exit 1 - fi; - done +maxcounter=45 +counter=1 +while ! mysql -u $MYSQL_USER -h $MYSQL_HOST -p$MYSQL_PASSWORD -e "show databases;" > /dev/null 2>&1; do + sleep 1 + counter=`expr $counter + 1` + if [ $counter -gt $maxcounter ]; then + >&2 echo "We have been waiting for MySQL too long already; failing." + exit 1 + fi; +done + +# Check if the connected database has tables, otherwise install the database +if [[ $(mysql -f -u $MYSQL_USER -h $MYSQL_HOST -p$MYSQL_PASSWORD $MYSQL_DATABASE -e "show tables;" --batch | wc -l) -eq 0 ]]; then + + # Setup mysql database + echo "INSTALL DB" mysql -f -u $MYSQL_USER -h $MYSQL_HOST -p$MYSQL_PASSWORD $MYSQL_DATABASE < ${STUDIP}/db/studip.sql echo "INSTALL DEFAULT DATA" mysql -f -u $MYSQL_USER -h $MYSQL_HOST -p$MYSQL_PASSWORD $MYSQL_DATABASE < ${STUDIP}/db/studip_default_data.sql @@ -44,6 +47,8 @@ if [ ! -f $CONFIGFILE ]; then fi echo "INSTALLATION FINISHED" +else + echo "Found some SQL table. Skipping installation" fi if [ ! -z $AUTO_MIGRATE ]; then -- GitLab