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í.