Files
nix/packages/docker/mariadb/entrypoint.sh
Nikolaos Karaolidis 15bf209e8c Refactor secrets
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-07-24 11:01:47 +01:00

40 lines
983 B
Bash

#!/bin/sh
set -o errexit
set -o nounset
MYSQL_USER="${MYSQL_USER:-mariadb}"
MYSQL_PASSWORD="${MYSQL_PASSWORD:-mariadb}"
MYSQL_ROOT_PASSWORD="${MYSQL_ROOT_PASSWORD:-$MYSQL_PASSWORD}"
MYSQL_DB="${MYSQL_DB:-main}"
DATADIR="${DATADIR:-/var/lib/mysql}"
if [ ! -f "$DATADIR/mysql_upgrade_info" ]; then
mariadb-install-db --datadir="$DATADIR" --skip-test-db
mariadbd --user=root --datadir="$DATADIR" --skip-networking --skip-grant-tables &
PID="$!"
while ! mariadb --protocol=socket -e "
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '$MYSQL_ROOT_PASSWORD';
CREATE USER '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD';
GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' WITH GRANT OPTION;
CREATE DATABASE \`$MYSQL_DB\`;
"; do
sleep 0.1
done
kill -QUIT "$PID"
wait "$PID" || true
fi
trap 'kill -QUIT "$PID"' INT TERM
mariadbd --user=root --datadir="$DATADIR" "$@" &
PID=$!
wait "$PID"
exit $?