MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

SpringBoot w Docker nie łączy się z Mongo w Docker

EDYCJA:

Nigdy nie zajmowałem się tworzeniem wiosennego rozruchu, ale wyświetlany błąd może być niezwiązany z problemem mongo. Oto jednak wyjaśnienie, dlaczego połączenie mongo nie działa:

docker-compose tworzy sieć wirtualną, jeśli nie została określona w pliku (jak w twoim przypadku).

Wszystkie Twoje aplikacje działają w tej sieci, całkowicie odizolowane od siebie. W związku z tym localhost w twoim wiosennym pojemniku na buty faktycznie odnosi się do siebie. Oznacza to, że Twoja aplikacja spring-boot oczekuje mongo instancja uruchomiona wewnątrz swojego kontenera (co nie jest, znajduje się w innym kontenerze).

Byłoby to w porządku, gdyby zarówno baza danych, jak i aplikacja działały w sieci laptopa. Ale jak wspomniano, teraz działają w docker-compose sieci, w całkowitej izolacji.

Jednak docker-compose jest naprawdę sprytny! Tworzy DNS dla każdego z twoich kontenerów, który używa nazwy usługi (w twoim przypadku mongo i spring ) określone w Twoim docker-compose plik umożliwiający łatwy dostęp do kontenerów wewnątrz sieci.

Więc powinieneś być w stanie zmienić spring.data.mongodb.uri=mongodb://localhost:27017/db do spring.data.mongodb.uri=mongodb://mongo:27017/db i to powinno pozwolić mu się połączyć.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zmienne środowiskowe aplikacji Meteor

  2. Czy MongoDB i jego sterowniki mogą zachować kolejność elementów dokumentu?

  3. Dlaczego nowe dokumenty w mongo mają obiekt, a nie ObjectId?

  4. MongoError,err:błąd zduplikowanego klucza E11000

  5. Jak mogę wykonać instrukcję PO zakończeniu pętli w javascript?