Inception/srcs/requirements/mariadb/tools/docker-entrypoint.sh
2025-05-22 12:30:01 +02:00

48 lines
1.4 KiB
Bash

#!/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=mariadb --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 "$@"