Подключение к докеризованной конечной точке REST JaxRS из другого контейнера локально - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь подключиться к конечной точке отдыха портлета жизненного пути JaxRS. Если я попытаюсь подключиться через почтальона, используя http://localhost: 8078 / engine-rest / process-definition

Все работает нормально.

Я пытаюсь подключиться к та же самая конечная точка из другой docker части контейнера той же docker сети, я попытался с localhost, и я получаю ошибку:

java. net .ConnectException: Соединение отказано (Соединение отказано)

Я также пытался http://wasp-engine: 8078 , w asp -инжин - это docker имя контейнера. Все еще получаю ту же ошибку.

Вот два контейнера в моем файле составления:

wasp-engine:
  image: in/digicor-engine:test
  container_name: wasp-engine
  ports:
    - "8078:8080"
  depends_on:
    mysql:
      condition: service_healthy

wasp:
  image: in/wasp:local2
  container_name: Wasp
  volumes:
    - liferay-document-library:/opt/liferay/data
  environment:
    - camundaEndPoint=http://wasp-engine:8078
  ports:
    - "8079:8080"
  depends_on:
    mysql:
      condition: service_healthy

Они оба подключаются к штрафу mysql, который является частью той же сети docker и на который ссылаются через:

jdbc.default.url=jdbc:mysql://mysql/liferay_test

1 Ответ

1 голос
/ 31 января 2020

tl; dr

Использование http://wasp-engine:8080

Почему

В вашем docker -составлении поля ports: - "8078:8080" на wasp-engine будет выставлен порт 8080 контейнера docker на хост-компьютер через порт 8078. Это то, что позволяет вашему почтальону успешно подключаться к контейнеру через localhost. Однако один раз внутри контейнера docker localhost ссылается на сам контейнер docker. Эта переадресация портов больше не применяется.

Используя docker -compose, вы можете использовать имя контейнера для указания указанного контейнера c docker. Вы упомянули, что пытались это сделать с помощью URI http://wasp-engine:8078. При доступе к контейнеру таким образом используется оригинальный порт, а не перенаправленный порт для хост-компьютера. Это означает, что контейнер docker должен быть нацелен на порт 8080.

Собрав все вместе, окончательный URI должен быть http://wasp-engine:8080.

...