Bundle MariaDB for single container deployment
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
SOCKET="/run/mysqld/mysqld.sock"
|
||||
|
||||
mkdir -p /run/mysqld /var/lib/mysql
|
||||
chown -R mysql:mysql /run/mysqld /var/lib/mysql
|
||||
|
||||
if [ ! -d /var/lib/mysql/mysql ]; then
|
||||
mariadb-install-db --user=mysql --datadir=/var/lib/mysql --skip-test-db >/dev/null
|
||||
fi
|
||||
|
||||
mysqld_safe --datadir=/var/lib/mysql --bind-address=127.0.0.1 --port=3306 >/tmp/mariadb.log 2>&1 &
|
||||
|
||||
tries=0
|
||||
until mysqladmin --protocol=socket --socket="$SOCKET" -uroot ping >/dev/null 2>&1; do
|
||||
tries=$((tries + 1))
|
||||
if [ "$tries" -gt 60 ]; then
|
||||
echo "MariaDB gagal start. Log:"
|
||||
cat /tmp/mariadb.log || true
|
||||
exit 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
mysql --protocol=socket --socket="$SOCKET" -uroot <<'SQL'
|
||||
CREATE USER IF NOT EXISTS 'webgis'@'%' IDENTIFIED BY 'webgis';
|
||||
CREATE USER IF NOT EXISTS 'webgis'@'localhost' IDENTIFIED BY 'webgis';
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'webgis'@'%';
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'webgis'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
SQL
|
||||
|
||||
if ! mysql --protocol=socket --socket="$SOCKET" -uroot -N -e "SHOW TABLES FROM spbu_db LIKE 'spbu';" 2>/dev/null | grep -q '^spbu$'; then
|
||||
mysql --protocol=socket --socket="$SOCKET" -uroot < /var/www/html/01/spbu_db.sql
|
||||
fi
|
||||
|
||||
if ! mysql --protocol=socket --socket="$SOCKET" -uroot -N -e "SHOW TABLES FROM webgis2 LIKE 'jalan';" 2>/dev/null | grep -q '^jalan$'; then
|
||||
mysql --protocol=socket --socket="$SOCKET" -uroot < /var/www/html/02/webgis2.sql
|
||||
fi
|
||||
|
||||
if ! mysql --protocol=socket --socket="$SOCKET" -uroot -N -e "SHOW TABLES FROM webgis_uas LIKE 'rumah_ibadah';" 2>/dev/null | grep -q '^rumah_ibadah$'; then
|
||||
mysql --protocol=socket --socket="$SOCKET" -uroot < /var/www/html/05/webgis_uas.sql
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
Reference in New Issue
Block a user