sql >> Database >  >> NoSQL >> MongoDB

SpringBoot in Docker maakt geen verbinding met Mongo in Docker

BEWERKEN:

Ik heb nog nooit spring-boot-ontwikkeling gedaan, maar de fout die u zegt te worden weergegeven, heeft mogelijk niets te maken met het mongo-probleem. Hier is echter een verklaring waarom uw mongo-verbinding faalt:

docker-compose maakt een virtueel netwerk aan als er geen is opgegeven in het bestand (zoals in uw geval).

Al uw applicaties draaien binnen dit netwerk, volledig geïsoleerd van elkaar. Als zodanig, localhost in je spring-boot container verwijst eigenlijk naar zichzelf. Dit betekent dat je spring-boot-applicatie de mongo . verwacht instantie om binnen zijn container te draaien (wat niet het geval is, het is in een andere container).

Dit zou prima zijn geweest als zowel de database als de applicatie op het netwerk van uw laptop draaiden. Maar zoals vermeld, draaien ze nu in de docker-compose netwerk, volledig geïsoleerd.

Echter, docker-compose is echt slim! Het creëert een DNS voor elk van uw containers die de servicenaam gebruikt (in uw geval mongo en spring ) opgegeven in uw docker-compose bestand om gemakkelijke toegang tot de containers in het netwerk mogelijk te maken.

U zou dus spring.data.mongodb.uri=mongodb://localhost:27017/db moeten kunnen wijzigen naar spring.data.mongodb.uri=mongodb://mongo:27017/db en dat zou het mogelijk moeten maken om verbinding te maken.



  1. Welk SchemaType in Mongoose is het beste voor tijdstempel?

  2. MockBean-annotatie in Spring Boot-test veroorzaakt NoUniqueBeanDefinitionException

  3. API Connect toont Cannot GET /apim/-fout bij bijwerken van schema

  4. Verschillende waarden van meerdere waarden krijgen in Mongodb