瀏覽代碼

Check if mysql has been initialized before trying to upgrade

FreddleSpl0it 3 月之前
父節點
當前提交
743bfcec60

+ 12 - 10
data/Dockerfiles/bootstrap/modules/BootstrapMysql.py

@@ -10,19 +10,21 @@ class BootstrapMysql(BootstrapBase):
     dbpass = os.getenv("MYSQL_ROOT_PASSWORD", "")
     socket = "/tmp/mysql-temp.sock"
 
-    print("Starting temporary mysqld for upgrade...")
-    self.start_temporary(socket)
+    # Check if mysql has been initialized
+    if os.path.exists("/var/lib/mysql/mysql/db.frm"):
+      print("Starting temporary mysqld for upgrade...")
+      self.start_temporary(socket)
 
-    self.connect_mysql(socket)
+      self.connect_mysql(socket)
 
-    print("Running mysql_upgrade...")
-    self.upgrade_mysql(dbuser, dbpass, socket)
-    print("Checking timezone support with CONVERT_TZ...")
-    self.check_and_import_timezone_support(dbuser, dbpass, socket)
+      print("Running mysql_upgrade...")
+      self.upgrade_mysql(dbuser, dbpass, socket)
+      print("Checking timezone support with CONVERT_TZ...")
+      self.check_and_import_timezone_support(dbuser, dbpass, socket)
 
-    print("Shutting down temporary mysqld...")
-    self.close_mysql()
-    self.stop_temporary(dbuser, dbpass, socket)
+      print("Shutting down temporary mysqld...")
+      self.close_mysql()
+      self.stop_temporary(dbuser, dbpass, socket)
 
 
     # Setup Jinja2 Environment and load vars

+ 0 - 1
data/Dockerfiles/mariadb/Dockerfile

@@ -7,7 +7,6 @@ RUN apt-get update && \
   apt-get install -y --no-install-recommends \
     python3 \
     python3-pip \
-    gosu \
   && apt-get clean \
   && rm -rf /var/lib/apt/lists/*
 

+ 1 - 1
data/Dockerfiles/mariadb/docker-entrypoint.sh

@@ -17,4 +17,4 @@ if [ $BOOTSTRAP_EXIT_CODE -ne 0 ]; then
 fi
 
 echo "Bootstrap succeeded. Starting MariaDB..."
-exec gosu mysql "$@"
+exec /usr/local/bin/docker-entrypoint.sh "$@"