MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

SpringBoot in Docker non si connette a Mongo in Docker

MODIFICA:

Non ho mai eseguito lo sviluppo dell'avvio primaverile, ma l'errore che stai dicendo che viene visualizzato potrebbe benissimo non essere correlato al problema di mongo. Tuttavia, ecco una spiegazione del motivo per cui la tua connessione mongo non riesce:

docker-compose crea una rete virtuale se non ne è stata specificata una nel file (come nel tuo caso).

Tutte le tue applicazioni vengono eseguite all'interno di questa rete, completamente isolate l'una dall'altra. In quanto tale, localhost nel tuo contenitore di avvio a molla si riferisce effettivamente a se stesso. Ciò significa che la tua applicazione di avvio a molla si aspetta il mongo istanza da eseguire all'interno del relativo contenitore (che non lo è, è in un contenitore diverso).

Questo sarebbe andato bene quando sia il database che l'applicazione erano in esecuzione sulla rete del tuo laptop. Ma come accennato, ora sono in esecuzione nella docker-compose rete, in completo isolamento.

Tuttavia, docker-compose è davvero intelligente! Crea un DNS per ciascuno dei tuoi contenitori che utilizza il nome del servizio (nel tuo caso mongo e spring ) specificato nel tuo docker-compose file per consentire un facile accesso ai contenitori all'interno della rete.

Quindi dovresti essere in grado di modificare spring.data.mongodb.uri=mongodb://localhost:27017/db a spring.data.mongodb.uri=mongodb://mongo:27017/db e questo dovrebbe consentirgli di connettersi.