Отказано в соединении между docker express серверами - PullRequest
1 голос
/ 26 февраля 2020

Я пытаюсь установить соединение между двумя docker контейнерами, на которых запущены express серверы. В этом случае я хотел бы использовать маршруты на сервере задач на сервере управления пользователями. Я реализовал express -http-proxy на сервере управления пользователями следующим образом:

app.use('/api/tasks', proxy('http://tasks-service:5002/api/tasks'));

однако, когда я делаю вызов API, я получаю ошибку

{
  "err":"connect ECONNREFUSED 172.21.0.6:5002"
}

Я установил cors на обоих серверах и связал их в одной сети с помощью docker -compose (ниже)

docker-compose.

Что вызывает Ошибка? как мне это решить?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Ваша служба задач работает на порте 3000, и вы сопоставляете его с портом хоста 5002
Итак, ваш код должен быть:

app.use('/api/tasks', proxy('http://tasks-service:3000/api/tasks'));

Вам не нужно сопоставлять порты, чтобы сделать это работает, кстати.

0 голосов
/ 27 февраля 2020

простая ошибка

docker -compose.yml

tasks-service:
  ...
  ports:
    - "5002:3000" # <-- wrong
    - "3000:5002" # <-- right, "<hostPort>:<containerPort>"
  ...

При этом ваш прокси должен подключиться

...