sql >> Databáze >  >> NoSQL >> MongoDB

SpringBoot v Dockeru se nepřipojuje k Mongo v Dockeru

EDIT:

Nikdy jsem neprováděl jarní vývoj bootování, ale chyba, kterou říkáte, že se zobrazuje, může velmi dobře nesouviset s problémem mongo. Zde je však vysvětlení, proč vaše mongo připojení selhává:

docker-compose vytvoří virtuální síť, pokud nebyla v souboru uvedena (jako ve vašem případě).

Všechny vaše aplikace běží uvnitř této sítě, zcela izolované od sebe. Jako takový localhost ve vašem kontejneru pružinových bot ve skutečnosti odkazuje sám na sebe. To znamená, že vaše jarní spouštěcí aplikace očekává mongo instance běží uvnitř svého kontejneru (což není, je v jiném kontejneru).

To by bylo v pořádku, když databáze i aplikace běžely v síti vašeho notebooku. Ale jak již bylo zmíněno, nyní běží v docker-compose síti, v naprosté izolaci.

Nicméně docker-compose je opravdu šikovný! Vytvoří DNS pro každý z vašich kontejnerů, který používá název služby (ve vašem případě mongo a spring ) specifikované ve vašem docker-compose aby byl umožněn snadný přístup ke kontejnerům uvnitř sítě.

Takže byste měli být schopni změnit spring.data.mongodb.uri=mongodb://localhost:27017/db na spring.data.mongodb.uri=mongodb://mongo:27017/db a to by mělo umožnit připojení.



  1. Aktualizace více dokumentů v mongoose najednou

  2. Node Js Jak stáhnout soubor do paměti bez zápisu souboru do systému nebo bez vytvoření souboru v adresáři

  3. Redis Vue Desktop

  4. Chyba při vkládání dokumentu do sdílené kolekce MongoDB vytvořené pomocí CLI