MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

SpringBoot dans Docker ne se connecte pas à Mongo dans Docker

MODIFIER :

Je n'ai jamais fait de développement spring-boot, mais l'erreur que vous dites est affichée peut très bien être sans rapport avec le problème mongo. Cependant, voici une explication de la raison pour laquelle votre connexion mongo échoue :

docker-compose crée un réseau virtuel si aucun n'a été spécifié dans le fichier (comme dans votre cas).

Toutes vos applications s'exécutent à l'intérieur de ce réseau, complètement isolées les unes des autres. En tant que tel, localhost dans votre conteneur spring-boot se réfère en fait à lui-même. Cela signifie que votre application spring-boot attend le mongo instance à exécuter à l'intérieur de son conteneur (ce qui n'est pas le cas, elle se trouve dans un conteneur différent).

Cela aurait été bien lorsque la base de données et l'application s'exécutaient sur le réseau de votre ordinateur portable. Mais comme mentionné, ils s'exécutent maintenant dans le docker-compose réseau, dans un isolement complet.

Cependant, docker-compose est vraiment astucieux ! Il crée un DNS pour chacun de vos conteneurs qui utilise le nom du service (dans votre cas mongo et spring ) spécifié dans votre docker-compose fichier pour permettre un accès facile aux conteneurs à l'intérieur du réseau.

Donc, vous devriez pouvoir changer spring.data.mongodb.uri=mongodb://localhost:27017/db à spring.data.mongodb.uri=mongodb://mongo:27017/db et cela devrait lui permettre de se connecter.