From 21080c1fa3b7bfcffa39eb1edeb71f21c660a22a Mon Sep 17 00:00:00 2001 From: Sergio Nicolas Lavaise Date: Fri, 24 Apr 2026 13:19:38 -0300 Subject: [PATCH] Fix docker-entrypoint to wait longer for DB and pass commands correctly --- docker-entrypoint.sh | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 8297f02..a585a89 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -8,7 +8,7 @@ MYSQL_PID=$! # Wait for MariaDB to be ready echo "Waiting for MariaDB to be ready..." -for i in {1..30}; do +for i in {1..60}; do if mysqladmin ping -h localhost --silent 2>/dev/null; then echo "MariaDB is ready!" break @@ -18,23 +18,25 @@ done # Create database if it doesn't exist echo "Creating database if not exists..." -mysql -h localhost -u root -e "CREATE DATABASE IF NOT EXISTS \`${DB_NAME:-hospital}\`;" +DB_NAME="${DB_NAME:-hospital}" +mysql -h localhost -u root -e "CREATE DATABASE IF NOT EXISTS \`$DB_NAME\`;" # Create user and grant permissions if DB_PASSWORD is set if [ -n "$DB_PASSWORD" ] && [ "$DB_PASSWORD" != "" ]; then echo "Creating user and setting permissions..." + DB_USER="${DB_USER:-hospital}" # Check if user exists - USER_EXISTS=$(mysql -h localhost -u root -N -e "SELECT COUNT(*) FROM mysql.user WHERE User='${DB_USER:-root}' AND Host='%';") + USER_EXISTS=$(mysql -h localhost -u root -N -e "SELECT COUNT(*) FROM mysql.user WHERE User='$DB_USER' AND Host='%';") if [ "$USER_EXISTS" = "0" ]; then - mysql -h localhost -u root -e "CREATE USER '${DB_USER:-root}'@'%' IDENTIFIED BY '${DB_PASSWORD}';" - mysql -h localhost -u root -e "GRANT ALL PRIVILEGES ON ${DB_NAME:-hospital}.* TO '${DB_USER:-root}'@'%';" + mysql -h localhost -u root -e "CREATE USER '$DB_USER'@'%' IDENTIFIED BY '$DB_PASSWORD';" + mysql -h localhost -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'%';" mysql -h localhost -u root -e "FLUSH PRIVILEGES;" else echo "User already exists, updating password..." - mysql -h localhost -u root -e "ALTER USER '${DB_USER:-root}'@'%' IDENTIFIED BY '${DB_PASSWORD}';" - mysql -h localhost -u root -e "GRANT ALL PRIVILEGES ON ${DB_NAME:-hospital}.* TO '${DB_USER:-root}'@'%';" + mysql -h localhost -u root -e "ALTER USER '$DB_USER'@'%' IDENTIFIED BY '$DB_PASSWORD';" + mysql -h localhost -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'%';" mysql -h localhost -u root -e "FLUSH PRIVILEGES;" fi fi @@ -45,8 +47,9 @@ echo "=== MariaDB initialization complete ===" if [ "$1" = "nginx.sh" ]; then echo "Starting nginx..." nginx + shift exec "$@" fi -# Otherwise wait for the process -wait \ No newline at end of file +# Run the command passed to the container +exec "$@" \ No newline at end of file