Si vous utilisez une image mysql, mariadb (ou dérivée comme wodby/mariadb de la suite docker4drupal) alors vous savez que par défaut une seule base de données est initialisée lors de la création du conteneur. Il est possible d'en créer autant que l'on veut via les script d'initialisation.
En voici un exemple qui va en créer deux, et en affecter le plein contrôle à l'utilisateur mysql drupal :
CREATE DATABASE IF NOT EXISTS `mabase1`;
CREATE DATABASE IF NOT EXISTS `mabase2`;
GRANT ALL PRIVILEGES ON mabase1.* TO 'drupal'@'%';
GRANT ALL PRIVILEGES ON mabase2.* TO 'drupal'@'%';
Pour que ce script se lance automatiquement à la création du conteneur nous allons l'ajouter au point de montage du dossier /docker-entrypoint-initdb.d dans le conteneur.
Sur notre machine nous allons placer le script dans le dossier ./files/databases/provisioning/init.sql et nous modifions en conséquence notre fichier docker-compose.yml :
mariadb:
image: wodby/mariadb:$MARIADB_TAG
container_name: "${PROJECT_NAME}_mariadb"
stop_grace_period: 30s
volumes:
- ./files/databases/provisioning:/docker-entrypoint-initdb.d
Les bases seront ainsi créées automatiquement au lancement du conteneur !
Ajouter un commentaire