Initialisation d'une base de données MySQL avec un schéma dans Docker
Problème
Les utilisateurs de Docker rencontrent des difficultés lors de l'initialisation une base de données MySQL avec un schéma prédéfini utilisant un Dockerfile. Malgré les directives de documentation suivantes, la commande CMD destinée à exécuter le script de schéma échoue, empêchant la création réussie du conteneur.
Solution
La solution implique une approche séquentielle :
-
Vider le schéma MySQL dans un fichier :
Exporter la base de données schéma dans un fichier à l'aide de la commande mysqldump.
-
AJOUTER un fichier de schéma au conteneur Docker :
Dans le fichier Docker, utilisez la commande ADD pour copier le fichier schema.sql dans le fichier /docker -répertoire Entrypoint-initdb.d. Ce répertoire permet l'exécution automatique de scripts lors de l'initialisation de la base de données.
-
Démarrez l'instance Docker MySQL :
Initiez le conteneur Docker à l'aide de l'image MySQL spécifiée et du fichier Docker mis à jour.
Exemple Dockerfile :
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
Copier après la connexion
Notes supplémentaires :
- Le script docker-entrypoint.sh exécutera automatiquement tous les fichiers avec un ".sql" extension dans le répertoire /docker-entrypoint-initdb.d.
- Cette méthode permet d'initialiser une base de données MySQL avec un schéma lors de la création du conteneur, éliminant ainsi le besoin d'intervention manuelle.
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!