Fehlerbehebung beim Datenbank-Setup und beim Datenimport in Dockerfile
Das Erstellen einer Docker-Datei für ein LAMP-Projekt kann eine Herausforderung sein, insbesondere wenn Fehler im Zusammenhang mit MySQL auftreten Einrichtung und Datenimport. Dieser Artikel befasst sich mit einem häufigen Problem beim Einrichten von MySQL und dem Importieren eines Dumps mithilfe von Dockerfile-Befehlen.
Die bereitgestellte Dockerfile enthält mehrere wichtige Befehle für die MySQL-Einrichtung und das Laden von Daten. Die Fehlermeldung weist jedoch darauf hin, dass keine Verbindung zum lokalen MySQL-Server hergestellt werden kann. Um dieses Problem zu beheben, können wir den in der folgenden Lösung beschriebenen Ansatz übernehmen.
Lösung mit Docker-Image mit Datenimporten
Die neueste Version des offiziellen MySQL-Docker-Images bietet eine komfortable Lösung zum Importieren von Daten während des Startvorgangs. Die bereitgestellte docker-compose.yml-Konfiguration ermöglicht den Import von Daten aus einer angegebenen SQL-Datei:
data: build: docker/data/. mysql: image: mysql ports: - "3307:3306" environment: MYSQL_ROOT_PASSWORD: 1234 volumes: - ./docker/data:/docker-entrypoint-initdb.d volumes_from: - data
In dieser Konfiguration wird data-dump.sql im Verzeichnis docker/data abgelegt. Dieses Verzeichnis wird im MySQL-Container unter /docker-entrypoint-initdb.d gemountet.
Das Skript docker-entrypoint.sh im MySQL-Image enthält einen Block, der Dateien mit der Erweiterung .sql analysiert und als ausführt SQL-Abfragen gegen die MySQL-Datenbank. Dies ermöglicht den Datenimport während des Containerstarts.
Gewährleistung der Datenpersistenz
Wenn Datenpersistenz auch nach dem Stoppen und Entfernen des MySQL-Containers erforderlich ist, wird die Verwendung von a empfohlen separater Datencontainer. Die Docker-Datei für den Datencontainer ist einfach:
FROM n3ziniuka5/ubuntu-oracle-jdk:14.04-JDK8 VOLUME /var/lib/mysql CMD ["true"]
Durch das Mounten des Datencontainers in den MySQL-Container bleiben die Daten bestehen, auch wenn der MySQL-Container gestoppt wird. Beachten Sie, dass der Datencontainer für die Persistenz nicht ausgeführt werden muss.
Das obige ist der detaillierte Inhalt vonWie behebe ich MySQL-Setup- und Datenimportfehler in einem Docker-LAMP-Projekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!