Spring Boot, MySQL et Hibernate dockerisés : dépannage de « échec du lien de communication »
Lors de l'exécution d'une application Spring Boot avec MySQL dans un Docker conteneur, il est possible de rencontrer l'erreur « Échec du lien de communication » en raison de problèmes de connexion entre l'application et la base de données. Ce problème peut être résolu en garantissant que le nom d'hôte de la base de données correct est utilisé dans la configuration de l'application.
Dans la configuration fournie, la méthode createConnection utilise le nom d'hôte localhost dans l'URL JDBC. Il s'agit de la machine hôte, qui n'est pas celle sur laquelle l'image MySQL Docker est exécutée.
Pour résoudre le problème, le fichier Docker Compose doit être modifié pour utiliser le nom d'hôte de l'image MySQL dans la configuration de l'environnement de l'application Spring Boot. Voici le fichier Docker Compose mis à jour :
version: '3' services: docker-mysql: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=database - MYSQL_USER=root - MYSQL_PASSWORD=root ports: - 3307:3306 app: image: app:latest ports: - 8091:8091 environment: SPRING_DATASOURCE_URL: jdbc:mysql://docker-mysql:3306/database?autoReconnect=true&useSSL=false depends_on: - docker-mysql
En spécifiant la variable d'environnement SPRING_DATASOURCE_URL dans l'image Docker de l'application Spring Boot, le nom d'hôte du conteneur MySQL (docker-mysql) sera utilisé dans la connexion JDBC. Cela résout le problème de communication et permet à l'application de se connecter avec succès à la base de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!