Initialisierung einer MySQL-Datenbank mit Schema in Docker
Problem
Docker-Benutzer haben Schwierigkeiten bei der Initialisierung eine MySQL-Datenbank mit einem vordefinierten Schema unter Verwendung einer Docker-Datei. Trotz der Einhaltung der Dokumentationsrichtlinien schlägt der CMD-Befehl zum Ausführen des Schemaskripts fehl und verhindert so eine erfolgreiche Containererstellung.
Lösung
Die Lösung beinhaltet einen sequenziellen Ansatz:
-
MySQL-Schema in Datei ausgeben:
Exportieren Sie das Datenbankschema in eine Datei mit mysqldump-Befehl.
-
Schemadatei zum Docker-Container hinzufügen:
Verwenden Sie in der Docker-Datei den Befehl ADD, um die Datei schema.sql in die Datei /docker-entrypoint-initdb.d zu kopieren Verzeichnis. Dieses Verzeichnis ermöglicht die automatische Ausführung von Skripten bei der Datenbankinitialisierung.
-
Docker-MySQL-Instanz starten:
Initiieren Sie den Docker-Container mit dem angegebenen MySQL-Image und der aktualisierten Docker-Datei.
Beispiel 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
Zusätzliche Hinweise:
- Das Skript docker-entrypoint.sh führt automatisch alle Dateien mit einer „.sql“ aus. Erweiterung im Verzeichnis /docker-entrypoint-initdb.d.
- Diese Methode ermöglicht die Initialisierung einer MySQL-Datenbank mit einem Schema bei der Containererstellung, sodass kein manueller Eingriff erforderlich ist.
Das obige ist der detaillierte Inhalt vonWie initialisiere ich eine MySQL-Datenbank mit einem vordefinierten Schema in einem Docker-Container?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn