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.