MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

SpringBoot в Docker не се свързва с Mongo в Docker

РЕДАКТИРАНЕ:

Никога не съм правил разработка на spring-boot, но грешката, която казвате, че се показва, може много добре да не е свързана с проблема с mongo. Ето обаче обяснение защо вашата mongo-връзка е неуспешна:

docker-compose създава виртуална мрежа, ако такава не е посочена във файла (както във вашия случай).

Всички ваши приложения работят вътре в тази мрежа, напълно изолирани едно от друго. Като такъв, localhost във вашия spring-boot контейнер всъщност се отнася за себе си. Това означава, че приложението ви за пролетно стартиране очаква mongo екземпляр да се изпълнява вътре в своя контейнер (което не е, той е в различен контейнер).

Това би било добре, когато базата данни и приложението работят в мрежата на вашия лаптоп. Но както споменахме, те сега се изпълняват в docker-compose мрежа, в пълна изолация.

Въпреки това, docker-compose наистина е хитро! Той създава DNS за всеки от вашите контейнери, който използва името на услугата (във вашия случай mongo и spring ), посочени във вашия docker-compose файл, за да позволи лесен достъп до контейнерите вътре в мрежата.

Така че трябва да можете да промените spring.data.mongodb.uri=mongodb://localhost:27017/db до spring.data.mongodb.uri=mongodb://mongo:27017/db и това трябва да му позволи да се свърже.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. как да актуализирате и вмъквате записи в php с помощта на mongodb

  2. Как да създадете потребител в MongoDB

  3. Каква е ползата от fluentd при този сценарий?

  4. Попълване на конкретни полета в $lookup

  5. Mongodb уникален рядък индекс