Maison > base de données > tutoriel mysql > Comment initialiser une base de données MySQL avec un schéma prédéfini dans un conteneur Docker ?

Comment initialiser une base de données MySQL avec un schéma prédéfini dans un conteneur Docker ?

Mary-Kate Olsen
Libérer: 2024-12-09 06:39:07
original
304 Les gens l'ont consulté

How to Initialize a MySQL Database with a Predefined Schema in a Docker Container?

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 :

  1. 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.
  2. 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.
  3. 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal