Ich möchte ein Docker-Image über dem MySQL-Image erstellen, das bereits das für meine App erforderliche Schema enthält.
Ich habe versucht, der Docker-Datei Zeilen hinzuzufügen, die mein Schema als SQL-Datei importieren. Ich habe es so gemacht (meine Dockerfile):
FROM mysql
ENV MYSQL_ROOT_PASSWORD="bagabu"
ENV MYSQL_DATABASE="imhere"
ADD imhere.sql /tmp/imhere.sql
RUN "mysql -u root --password="bagabu" imhere < /tmp/imhere.sql"
Meines Erachtens hat das nicht funktioniert, weil das MySQL-Docker-Image keinen MySQL-Client enthält (Best Practices lauten: "Fügen Sie keine Dinge hinzu, nur weil sie nett sind") (irre ich mich dabei?)
Was könnte ein guter Weg sein, dies zu tun? Ich habe ein paar Dinge im Sinn gehabt, aber sie scheinen alle chaotisch zu sein.
- Installieren Sie den MySQL-Client, tun Sie, was ich damit zu tun habe, und entfernen / bereinigen Sie ihn dann.
- Kopieren Sie die MySQL-Client-Binärdatei in das Image, tun Sie, was ich tun muss, und entfernen Sie sie dann.
- Erstellen Sie das Schema in einem anderen SQL-Server und kopieren Sie die Datenbankdatei direkt selbst (dies scheint sehr chaotisch zu sein und klingt für mich wie ein verseuchter Pool von Problemen).
Irgendwelche Vorschläge? Hoffentlich auf eine Weise, die später einfach zu warten ist und möglicherweise auch den Best Practices entspricht?