Mariadb est un fork opensource de MySQL (MySQL a une partie opensource et une partie sous licence). Leurs fonctionnements sont tres proches et il est meme possible de remplacer l’un par l’autre. C’est ce service qui contiendra la base de donnee de notre Wordpress.
La configuration de Mariadb doit se faire en deux etapes :
1.1 CREATION BASE DE DONNEES + UTILISATEURS
Mariadb propose un shell interactif pour la configuration, et c’est un peu ca qui complique tout, mais il existe plusieurs solutions pour palier a ca et reussir la configuration directement du Dockerfile ou bien depuis un script shell de lancement:
mysql -h<host> -u<username> -p<password> -e "<command>"
b. On peut ecrire un fichier .sql qu’on va venir ‘<’ dans la partie interactive de mysql
mysql <db_name> < fichier.sql
Personnellement, j’ai opte pour la premiere option, mais ce n’est pas faute d’avoir essaye d’implementer la deuxieme. En fait, avec la deuxieme option je me suis confrontee a un probleme assez embetant, a savoir que l’expansion de variables d’environnement (ou de variables tout court) n’est pas possible dans un fichier .sql . Or, dans ce projet, on devait pouvoir se servir des variables situees dans le fichier .env, et ca me compliquait donc un peu la vie pour rien.
En ce qui concerne la premiere option, je lance donc le script au moment de docker-compose up afin de ne pas start et stop mon service avant meme d’avoir mon container running.
Les etapes sont les suivantes :
1.2 MODIFICATION DU FICHIER DE CONFIGURATION
Il y a deux fichiers de configuration qui nous interessent ici.
/etc/mysql/my.cnf : c’est le fichier de configuration principal mais il ne fait pas grand chose hormis charger automatiquement les fichiers de configuration presents mans /etc/mysql/conf.d et /etc/mysql/mariadb.conf .
/etc/mysql/mariadb.conf.d/50-server.cnf: c’est le fichier de configuration du daemon du server et qui contient notamment les instructions de ce dernier apres le mot clef [mysqld]
Ici, on veut surtout commenter la ligne bind-address ou bien ajouter les IP autorises a se connecter a mysql, donc on a juste besoin de modifier le fichier 50-server.cnf.
En effet, dans le fichier par defaut, on trouvera :
bind-address = 127.0.0.1
Et cette directive a pour effet principal de faire que Mariadb ne repondent qu’aux requetes venant du meme container (dans ft_server on n’avait donc pas besoin de modifier cette ligne par exemple). Or, vu que Wordpress est dans un autre container, on doit pouvoir autoriser les requetes de toutes les interfaces. Il faudra donc soit commenter cette ligne, soit la remplacer par :
bind-address = 0.0.0.0