#!/bin/sh set -e # If the first argument is 'mysqld', then start MariaDB if [ "$1" = 'mysqld' ]; then # Initialize the database if it doesn't exist if [ ! -d "/var/lib/mysql/mysql" ]; then echo "Initializing database..." mysql_install_db --user=mariadb --datadir=/var/lib/mysql --rpm echo "Database initialized." # Start MariaDB temporarily to set up initial configuration mysqld --user=mysql --skip-networking & pid="$!" # Wait for MariaDB to start while ! mysqladmin ping --silent; do sleep 1 done # Set up root user and any initial database echo "Setting up initial database..." mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}';" if [ -n "$MYSQL_DATABASE" ]; then mysql -e "CREATE DATABASE IF NOT EXISTS \`${MYSQL_DATABASE}\`;" fi if [ -n "$MYSQL_USER" ] && [ -n "$MYSQL_PASSWORD" ]; then mysql -e "CREATE USER '${MYSQL_USER}'@'%' IDENTIFIED BY '${MYSQL_PASSWORD}';" mysql -e "GRANT ALL PRIVILEGES ON \`${MYSQL_DATABASE}\`.* TO '${MYSQL_USER}'@'%';" fi mysql -e "FLUSH PRIVILEGES;" # Load initial SQL dump if init.sql exists if [ -f "/usr/bin/local/init.sql" ]; then echo "Loading initial SQL dump..." mysql "${MYSQL_DATABASE}" < /usr/bin/local/init.sql echo "Initial SQL dump loaded." fi # Stop temporary MariaDB instance kill "$pid" wait "$pid" fi echo "Starting MariaDB..." fi exec "$@"