diff --git a/srcs/requirements/mariadb/Dockerfile b/srcs/requirements/mariadb/Dockerfile index b9b04c2..1cabedd 100644 --- a/srcs/requirements/mariadb/Dockerfile +++ b/srcs/requirements/mariadb/Dockerfile @@ -5,8 +5,12 @@ RUN apt-get update && \ rm -rf /var/lib/apt/lists/* EXPOSE 3306 + COPY conf/my.cnf /etc/mysql/my.cnf COPY init.sh /docker-entrypoint-initdb.d/init.sh -RUN chmod +x /docker-entrypoint-initdb.d/init.sh +COPY entrypoint.sh /entrypoint.sh + +RUN chmod +x /entrypoint.sh /docker-entrypoint-initdb.d/init.sh + +ENTRYPOINT ["/entrypoint.sh"] -CMD ["mysqld_safe"] diff --git a/srcs/requirements/mariadb/entrypoint.sh b/srcs/requirements/mariadb/entrypoint.sh new file mode 100644 index 0000000..c686add --- /dev/null +++ b/srcs/requirements/mariadb/entrypoint.sh @@ -0,0 +1,30 @@ +#!/bin/bash +set -e + +# Démarre MariaDB en arrière-plan pour l'initialisation +mysqld_safe --skip-networking & +sleep 5 + +# Vérifie si la DB est déjà initialisée +if [ ! -d "/var/lib/mysql/mysql" ]; then + echo "=> Initializing database..." + mysql_install_db --user=mysql --ldata=/var/lib/mysql + + echo "=> Running init scripts..." + for f in /docker-entrypoint-initdb.d/*; do + case "$f" in + *.sh) echo "Running $f"; . "$f" ;; + *.sql) echo "Running $f"; mysql -u root < "$f" ;; + *) echo "Ignoring $f" ;; + esac + done + + echo "=> Initialization done." +fi + +# Stop MariaDB safe mode +mysqladmin -u root shutdown + +# Redémarre MariaDB en mode normal +exec mysqld_safe + diff --git a/srcs/requirements/mariadb/init.sh b/srcs/requirements/mariadb/init.sh index c6557d2..8e5618e 100644 --- a/srcs/requirements/mariadb/init.sh +++ b/srcs/requirements/mariadb/init.sh @@ -1,27 +1,14 @@ #!/bin/bash set -e -# Lancement du serveur en background -mysqld_safe & +echo "=> Creating WordPress database and user..." -# Attente que MariaDB soit accessible -echo "Waiting for MariaDB to start..." -until mysqladmin ping --silent; do - sleep 1 -done +mysql -u root < WordPress database and user created!"