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

Nastavení více kontejnerů Docker a MongoDB pro spuštění v CircleCI

Problém souvisí s místem původu. Pokud přistupujete k localhost z kontejneru Docker, localhost ukazuje na samotný docker, nikoli na hostitelský server, a proto se volání nedostane k hostiteli ani k ostatním dockerům.

Pokud jsou všechny vaše dockery na stejném hostitelském počítači, nejjednodušší způsob, jak je přimět, aby spolu mluvili přes localhost, je sdílet síť mezi kontejnery za běhu. Nejprve normálně spusťte backend a poté spusťte ostatní kontejnery pomocí --net přepínač:

docker run [other params] -d -p 8080:8080 --name service-app-container service_app_image docker run [other params] -p 3000:3000 --net="container:service-app-container" --name client-app-container client_app_image

Nyní by všechny porty vystavené a zmapované kterýmkoli kontejnerem sdílejícím síť měly být dostupné pod localhostem z kteréhokoli dockeru.

  • Pro přístup ke kontejneru service-app-container odkudkoli použijte machine:8080.
  • Chcete-li k němu přistupovat lokálně z hostitelského serveru, použijte localhost:8080.
  • Chcete-li k němu přistupovat interně ze servisní aplikace, použijte locahost:8080.
  • Pro přístup k servisní aplikaci z klientské aplikace použijte localhost:8080

Klientská aplikace bude světu vystavena pouze přes port 3000, pokud ji vystavíte také v ukotvitelném panelu, který obsahuje kontejner. Odkrytý port by neměl být stejný, protože to mate síť:

docker run [other params] -d -p 8080:8080 3001:3000 --name service-app-container service_app_image docker run [other params] -p 3000:3000 --net="container:service-app-container" client_app_image

Nyní můžete přistupovat ke klientské aplikaci zvenčí pomocí machine:3001.




  1. Jak převést BigDecimal na Double v rámci spring-data-mongodb

  2. Nakonfigurujte velikost GridFS Chunksize v MongoDB

  3. Instalace MongoDB ve WSL

  4. Mongo DB $nebo dotaz v PHP