Mir sind einige Probleme in Ihrem Code aufgefallen:
-
Docker-Compose-Datei
-
Verwenden Sie das Volume ./mysql-data:/var/lib/mysql Es ist wahrscheinlicher, dass dieser Fehler auftritt
[ERROR] The designated data directory /var/lib/mysql/ is unusableÄndern Sie es in ein beliebiges Verzeichnis, z. B.
/data/mysql -
die Wahrscheinlichkeit, dass Java Service Container wird zuerst vor Datenbankcontainer gestartet ist sehr hoch. Daher muss die
restart-on-failure optionhinzugefügt werden oderwait-for-it.shodersleep option.Diese Optionen aktivieren den Dienstcontainer auf Datenbankcontainer warten zu starten.java: restart: on-failure
-
-
Eigenschaftendatei.
Die Eigenschaftsdatei des Java-Dienstes zeigt auf den nicht vorhandenen Container
msändern Sie es in
spring.datasource.url=jdbc:mysql://db:3306/fruitshop?serverTimezone=UTCstatt
spring.datasource.url=jdbc:mysql://ms:3306/fruitshop?serverTimezone=UTC
nachdem die obigen Änderungen ausgeführt wurden
docker-compose up --build