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 option
hinzugefügt werden oderwait-for-it.sh
odersleep 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=UTC
statt
spring.datasource.url=jdbc:mysql://ms:3306/fruitshop?serverTimezone=UTC
nachdem die obigen Änderungen ausgeführt wurden
docker-compose up --build