Ich bin ein 2. Jahr angewandte Informatik Student und ich habe einige Probleme mit der Konfiguration eines mysql Docker. Als eine Aufgabe müssen wir 2 Docker Bilder erstellen (1 mit Apache/PHP und eine einfache PHP-Webseite und eine andere mit MySQL). Ich habe das apache/php docker bereits erstellt, was nicht so schwer war, aber ich habe mit mysql ziemlich viel zu tun.Probleme mit der Konfiguration von mysql/mysql-server dockerfile
Dateien
./Dockerfile
./test.sql
Dockerfile
FROM mysql/mysql-server
ENV MYSQL_ROOT_PASSWORD=lindert
RUN mkdir /usr/sql
RUN chmod 644 /usr/sql
ADD test.sql /usr/sql/test.sql
run MYSQL -u root -p${MYSQL_ROOT_PASSWORD} -e "CREATE DATABASE \
shippingdb" && mysql -u root -p${MYSQL_ROOT_PASSWORD} shippingdb <
/usr/sql/test.sql
Wenn ich laufen 'Docker zu bauen.' Diese Fehlermeldung erscheint:
mysql: [WARNING] Using a password on the command line interface can be
insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket
'/var/lib/mysql/mysql.sock' (2)
Ich habe keine Ahnung, wie dieses Problem zu beheben, habe ich jetzt für 3 Stunden wurde googeln und ich habe die Antwort noch nicht gefunden, wäre schön, wenn jemand helfen könnte. Danke!
Ich glaube nicht, dass der SQL-Dienst während des Build-Prozesses ausgeführt wird. Wahrscheinlich möchtest du den letzten RUN-Befehl aus deiner Docker-Datei entfernen und den PHP-Container verbinden lassen und die Datenbank initialisieren. Das ist normalerweise nichts, was du während des Build-Schritts tun würdest, zumindest meiner Erfahrung nach. – DivXZero
Ich hatte eine ähnliche Erfahrung mit Postgres, aber dies könnte Sie in die richtige Richtung gehen. Ich habe versucht, während des Builds so etwas zu machen, aber natürlich läuft Postgres nicht während des Builds. Hier versuchen Sie vielleicht, einen mysql-Befehl auszuführen, aber mysql läuft nicht bis zu [docker-entrypoint.sh] (https://github.com/docker-library/mysql/blob/master/8.0/docker) -entrypoint.sh) wird ausgelöst, wenn Sie das Bild tatsächlich ausführen. – bluescores