Docker Mysql - Créer une seconde base de données automatiquement

Cet article a été écrit il y a plus de quatre ans, son contenu n'est peut-être plus d'actualité.

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 !

Contenus en rapport

snippet · 13 Nov 2019 Docker Compose & Traefik, répondre sur une URL et ses sous-domaines J'utilise maintenant docker-compose pour l'ensemble de mes projets, principalement avec la formidable pile « docker4drupal ». Cette pile utilise Traefik pour… article · 2 Jun 2020 Utiliser une image docker pour exécuter les tâches Node / Gulp en dev ou CI En ayant marre d'avoir à gérer x versions de de NodeJS sur ma machine avec pour chacune ses dépendances et incompatibilités, et de devoir se souvenir pour… snippet · 19 Nov 2019 Lancer des tâches Gulp dans un conteneur docker NodeJS Je ne m'occupe pas du développement front, mais il m'arrive d'avoir à réaliser une modification rapide de CSS ou JS sur un projet qui peut avoir parfois… snippet · 18 Nov 2020 Lancer une inspection PHP Code Sniffer pour un drupal dans un container docker Phpcs (ou PHP Code Sniffer) est un inspecteur de code permettant de vérifier la validité du code écrits en fonction de standards. Pour l'ajouter à notre…

Commentaires (0)