Почему происходит сбой вызова API между двумя сервисами / контейнером nodeJs с именем сервиса в качестве имени хоста? - PullRequest
0 голосов
/ 24 июня 2019

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

Итак, у меня есть два сервера nodeJ, работающих в качестве службы, с двумя репликами обеих служб, и я хочу сделать так, чтобы API-вызов вызывался на сервере A из браузера, а сервер A по очереди выполнял еще один API-вызов на сервере B. и отправляет фиктивные данные обратно на сервер A, а сервер A возвращает их в браузер.

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

узел сервера A

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: nodeone:first
    deploy:
      replicas: 2
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "4000:3000"
    networks:
     - nw1
networks:
  nw1:

узел сервера B

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: nodetwo:latest
    deploy:
      replicas: 2
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "4080:3080"
    networks:
      - nw1
networks:
  nw1:

nw1 - это пользовательская сеть.

Я попытался вызвать сервер B изнутри к серверу A с указанными ниже конфигурациями, и, похоже, ничего не работает.

и во всех вышеперечисленных случаях я получаю ошибку ниже

ошибка: {Ошибка: подключить ECONNREFUSED 10.0.6.2:4080 в TCPConnectWrap.afterConnect [как oncomplete] (net.js: 1174: 14) ошибка: 'ECONNREFUSED',

...