Проблема с межсервисным перезапуском связи с контейнерами док-станции с пружинной загрузкой - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь настроить межсистемную коммуникацию службы отдыха с помощью докеров-контейнеров.

Цепочка вызовов выглядит следующим образом:

pdf-generation-orchestrator> ms-template-data-binder> ms-html-to-pdf

Когда первые две службы не находятся в докере, они могут общаться с экземпляром докера третьей, т.е. службы ms-html-to-pdf.

Но, когда я установил Docker-контейнеры для 3 сервисов, первые 2 не могли общаться друг с другом.

Docker-контейнеры для 3-х сервисов запустились нормально с помощью docker compose file ... up cmd

примечание: URL-адрес ms-template-data-binder, указанный в приложении pdf-generation-orchestrator.yml, выглядит следующим образом:

шаблон: Данные связующее вещество: базовый URL-адрес: http://ms -Binder-Data-Binder: 8080

Когда я получаю доступ к pdf-generation-orchestrator следующим образом:

curl -m 10 -X GET http://localhost:8001/pdf/v2 | base64 -D > test.pdf

В консоли docker compose появляется следующая ошибка:

2019-06-17 18: 34: 55.275 ОШИБКА 1 --- [nio-8001-exec-1] oaccC [. [. [/]. [DispatcherServlet]: Servlet.service () для сервлета [dispatcherServlet] в контексте с путем [] выдало исключение [Ошибка обработки запроса; вложенное исключение org.springframework.web.client.ResourceAccessException: ошибка ввода-вывода при запросе POST для "http://localhost:8080/template/data-bind-pdf": Соединение отклонено (соединение отклонено); вложенное исключение - java.net.ConnectException: соединение отклонено (соединение отклонено)] с корнем причина

Я НЕ МОГУ понять, откуда исходит localhost в стеке ошибок:

Ниже приведен файл создания моего докера:

version: "2.1"
services:

  ms-html-to-pdf:
    image: nexus.cloud.uk:1000/shared/ms-html-to-pdfa:branch-develop
    networks:
      - api
    expose:
      - 1111
    ports:
      - 1111:1111
    volumes:
      - ./ms-html-to-pdfa/dev.yml:/opt/ms-html-to-pdfa/config.yml

  ms-template-data-binder:
    image: nexus.cloud.uk:1000:5000/poc/templ-data-binder:branch-develop
    networks:
      - api
    expose:
      - 8080
    ports:
      - 8080:8080

  pdf-generation-orchestrator:
    image: nexus.cloud.uk:1000:5000/poc/pdfgen:branch-develop
    networks:
      - api
    expose:
      - 8001
    ports:
      - 8001:8001

networks:
  api:
    driver: bridge

Буду признателен за любую помощь, так как я новичок в докере и т.д.

1 Ответ

0 голосов
/ 20 июня 2019

Проблема заключалась в том, что по умолчанию в bootboot localhost 8080 необходимо переписать в docker compose.

Я добавил некоторые переменные окружения в файл docker compose, как показано ниже, в службе client / orchestractor:

environment:
      - TEMPLATER_HOST_NAME=http://ms-template-data-binder:8080
      - PDF_GEN_HOST_NAME=http://ms-html-to-pdf:1111

Затем application.yml вызывающего микросервиса springboot был обновлен следующим образом:

template:
  data-binder:
    base-url: ${TEMPLATER_HOST_NAME:http://localhost:8080}

pdf:
  html-2-pdf:
    base-url: ${PDF_GEN_HOST_NAME:http://localhost:1111}

Я также перестроил и обновил изображения всех докеров, чтобы убедиться, что я загружаю последнюю версию образа с nexusрепо.

Вот так, надеюсь, это кому-нибудь поможет.

...