sql >> Database teknologi >  >> NoSQL >> MongoDB

Opsætning af flere Docker-containere og MongoDB til at køre i CircleCI

Problemet er relateret til oprindelsesstedet. Hvis du får adgang til localhost inde fra en Docker-container, peger localhosten på selve dockeren, ikke værtsserveren, og derfor når opkaldet ikke til værten eller de andre dockere.

Hvis alle dine dockere er på den samme værtsmaskine, er den nemmeste måde at få dem til at tale med hinanden via localhost ved at dele et netværk mellem containerne under kørslen. Kør først backend normalt, og start derefter de andre containere med --net skifte:

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

Nu skulle alle de porte, der er eksponeret og kortlagt af en af ​​containerne, der deler netværket, kunne nås under localhost fra enhver af dockerne.

  • For at få adgang til service-app-containeren hvor som helst, skal du bruge maskine:8080.
  • For at få adgang til det lokalt fra værtsserveren skal du bruge localhost:8080.
  • For at få adgang til det internt fra serviceappen skal du bruge locahost:8080.
  • For at få adgang til serviceappen fra klientappen skal du bruge localhost:8080

Klientappen vil kun blive eksponeret over port 3000 til verden, hvis du også eksponerer den i dockeren, der har containeren. Den udsatte port bør ikke være den samme, da dette forvirrer netværket:

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

Nu kunne du få adgang til klientappen udefra ved hjælp af maskine:3001.




  1. Få adgang til MongoDB direkte via JavaScript

  2. Mongoose vælg felter for at returnere fra findOneAndUpdate

  3. Ruby on Rails Mongoid og Webfaction:Ikke autoriseret til forespørgsel (fejl 16550)

  4. MongoDB sorteringsdatostreng (mm/dd/åååå)