MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

SpringBoot no Docker não se conecta ao Mongo no Docker


EDITAR:

Eu nunca fiz desenvolvimento de inicialização por mola, mas o erro que você está dizendo que está sendo exibido pode muito bem não estar relacionado ao problema do mongo. No entanto, aqui está uma explicação de por que sua conexão mongo está falhando:

docker-compose cria uma rede virtual se não tiver sido especificada no arquivo (como no seu caso).

Todos os seus aplicativos são executados dentro dessa rede, completamente isolados uns dos outros. Assim, localhost em seu contêiner spring-boot, na verdade, se refere a si mesmo. Significando que seu aplicativo spring-boot está esperando o mongo instância esteja sendo executada dentro de seu contêiner (o que não é, está em um contêiner diferente).

Isso teria sido bom quando o banco de dados e o aplicativo estivessem sendo executados na rede do seu laptop. Mas, como mencionado, eles agora estão sendo executados no docker-compose rede, em completo isolamento.

No entanto, docker-compose é muito inteligente! Ele cria um DNS para cada um de seus contêineres que usa o nome do serviço (no seu caso mongo e spring ) especificado em seu docker-compose para permitir acesso fácil aos contêineres dentro da rede.

Portanto, você deve poder alterar spring.data.mongodb.uri=mongodb://localhost:27017/db para spring.data.mongodb.uri=mongodb://mongo:27017/db e isso deve permitir que ele se conecte.