Контейнер моего приложения Angular не может связаться с моим контейнером API в Docker - PullRequest
0 голосов
/ 27 декабря 2018

Я новичок в Docker, и я пытаюсь запустить приложение Angular в контейнере Docker, который отправляет запрос на обслуживание API, работающему в другом контейнере Docker

Они оба работают в одной сети и какВы можете видеть, что я могу пропинговать от одного контейнера до другого.

Ping from angular container to API container

И когда я выставляю службу на локальном порту 3000, я вижу, что служба работает

Browser accessing localhost:3000

Но когда мое приложение Angular вызывает службу, запрос прерывается и выдает мне эту ошибку:

GET http://172.69.69.1:8080/ net :: ERR_CONNECTION_TIMED_OUT

Мой Dockerfile в моем угловом приложении выглядит следующим образом:

 FROM node:8

 WORKDIR /usr/src/app

 COPY package.json /usr/src/app/package.json
 RUN npm install
 RUN npm install -g @angular/cli@6.1.5

 COPY . /usr/src/app

 CMD ng serve

Команда, которую я использовал для запуска моего API, была

 docker run --name hello-service --ip 172.69.69.1 -p 3000:8000 --network mtsds_test hello-service

И та, которую я использовалдля моего приложения было

docker run -it -v /usr/src/app -v /usr/src/app/node_modules -p 4200:4200 --rm --network mtsds_test angular_mtsds

У меня запущена эта служба в моем приложении Angular

   public sayHello(){
      return this._http.get('http://172.69.69.1:8080');
   }

1 Ответ

0 голосов
/ 29 декабря 2018

Я не понимаю, откуда появился порт 8080 относительно вашей команды docker-run:

docker run --name hello-service --ip 172.69.69.1 -p 3000:8000 --network mtsds_test hello-service

Затем вам следует использовать либо открытый порт 8000, либо опубликованный порт 3000, но не 8080.

...