Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich eine MySQL-Datenbank mit Schema in einem Docker-Container initialisieren?

Ich hatte das gleiche Problem, bei dem ich das Schema meiner MySQL Docker-Instanz initialisieren wollte, aber ich hatte Schwierigkeiten, dies zum Laufen zu bringen, nachdem ich etwas gegoogelt und den Beispielen anderer gefolgt war. So habe ich es gelöst.

1) Speichern Sie Ihr MySQL-Schema in einer Datei.

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

2) Verwenden Sie den ADD-Befehl, um Ihre Schemadatei zu /docker-entrypoint-initdb.d hinzuzufügen Verzeichnis im Docker-Container. Die docker-entrypoint.sh file führt alle Dateien in diesem Verzeichnis aus, die auf ".sql" enden gegen die MySQL-Datenbank.

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

3) Starten Sie die Docker-MySQL-Instanz.

docker-compose build
docker-compose up

Danke an Einrichten von MySQL und Importieren von Dump innerhalb Docker-Datei für den Hinweis auf docker-entrypoint.sh und die Tatsache, dass es sowohl SQL- als auch Shell-Skripte ausführt!