L'initialisation d'une base de données MySQL avec un schéma dans un conteneur Docker est une tâche courante qui implique la création d'une base de données et y charger un schéma. Une approche pour ce faire consiste à utiliser un Dockerfile et la commande CMD pour exécuter un script qui initialise la base de données. Cependant, cette méthode peut rencontrer des difficultés, car la commande CMD ne peut exécuter qu'une seule commande et non une série de commandes.
Pour surmonter ce problème, une approche plus fiable consiste à utiliser la commande ADD pour ajouter la base de données. fichier de schéma dans le répertoire /docker-entrypoint-initdb.d. Lors de la création du conteneur, le script docker-entrypoint.sh exécute automatiquement tous les scripts SQL situés dans ce répertoire sur la base de données MySQL.
Dockerfile modifié :
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
Préparation du vidage du schéma :
Avant de commencer, assurez-vous d'avoir un vidage de votre MySQL schéma enregistré dans un fichier nommé schema.sql. Ceci peut être obtenu en utilisant la commande mysqldump :
mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
Démarrage de l'instance Docker MySQL :
Une fois le fichier Docker modifié et le vidage du schéma préparé, vous pouvez démarrer l'instance Docker MySQL à l'aide de Docker Compose :
docker-compose build docker-compose up
En suivant ces étapes, vous pouvez efficacement initialisez une base de données MySQL avec un schéma dans un conteneur Docker. Le répertoire docker-entrypoint-initdb.d garantit que le schéma est chargé lors de la création du conteneur, vous permettant d'avoir une base de données pré-remplie avec le schéma souhaité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!