Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je initialiser une base de données MySQL avec un schéma dans un conteneur Docker ?

J'ai eu le même problème où je voulais initialiser le schéma de mon instance MySQL Docker, mais j'ai rencontré des difficultés pour que cela fonctionne après avoir fait quelques recherches sur Google et suivi les exemples des autres. Voici comment je l'ai résolu.

1) Videz votre schéma MySQL dans un fichier.

mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql

2) Utilisez la commande ADD pour ajouter votre fichier de schéma au /docker-entrypoint-initdb.d répertoire dans le conteneur Docker. Le docker-entrypoint.sh file exécutera tous les fichiers de ce répertoire se terminant par ".sql" contre la base de données MySQL.

Fichier Docker :

FROM mysql:5.7.15

MAINTAINER me

ENV MYSQL_DATABASE=<schema_name> \
    MYSQL_ROOT_PASSWORD=<password>

ADD schema.sql /docker-entrypoint-initdb.d

EXPOSE 3306

3) Démarrez l'instance Docker MySQL.

docker-compose build
docker-compose up

Merci à Configuration de MySQL et importation de vidage dans Dockerfile pour m'avoir éclairé sur docker-entrypoint.sh et sur le fait qu'il exécute à la fois des scripts SQL et shell !