Ich habe letzten Beitrag Setting up MySQL and importing dump within Dockerfile gelesen, konnte aber keine Antwort finden.Docker Mysql Problem
Was ich will ist, benutzerdefinierte mysql-Image mit erstellten Datenbank, Benutzer und einige andere Daten zu erstellen. Hier ist meine Dockerfile (vereinfacht):
FROM mysql:5.7
ENV MYSQL_ROOT_PASSWORD=root
RUN service mysql start && \
mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "CREATE DATABASE mydb;" && \
mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "SHOW databases;" && \
service mysql stop
ENTRYPOINT service mysql start && /bin/sh
Bild wird gebaut und erfolgreich mydb-Datenbank wird als Ausgabe von „SHOW DATABASES“ aufgeführt. Aber wenn ich Container basierend auf diesem Bild ausführen sehe ich, dass Root-Passwort leer ist und meine Datenbank fehlt.
Wie kann ich das beheben? Vielen Dank?
Danke, Sergey. Ich werde das versuchen. Aber wieso ist meine bei RUN erstellte Datenbank verloren gegangen? Bedeutet es, dass es nicht sinnvoll ist, datenbankbezogene Daten vor dem ersten Containerlauf zu initialisieren? – Sergey
Das ist eine gute Frage. Könnten Sie mir 'Dockerfile' zeigen, wo Sie dieses Basisbild verwenden? –
Sergey, ich habe den Inhalt der Docker-Datei in der Fragebeschreibung angegeben – Sergey