Развертывание нескольких микросервисов в зависимости друг от друга для пакетов в контейнер докера - PullRequest
0 голосов
/ 22 января 2019

Мне нужно развернуть микросервисы в java для контейнера докеров, и эти микросервисы зависят друг от друга для создания пакетов.Как и у приложения a, есть базовые пакеты, необходимые для других приложений b, c и d, поэтому i не может выполнить docker чистой установки mvn: сборка для сборки b, c и d без a.Я новичок в docker, и кто-то может подсказать мне, как решить эту проблему.

Я использую подключаемые модули docker в pom-файле, а затем использую mvn clean install -d docker: build для создания образа docker.

1 Ответ

0 голосов
/ 22 января 2019

Существуют различные решения этой проблемы:

  • Используя maven (или gradle), вы можете создать проект maven для общих классов и импортировать его в другой проект как зависимость
  • Дублирующий код в разных проектах.Хотя это кажется не очень хорошим решением, оно полностью разделяет зависимость между проектами.Каждый проект должен рассматриваться как черный ящик, поэтому вы не должны ничего знать о его внутреннем коде.Например, вы должны иметь возможность изменить язык программирования одного докера, не затрагивая поведение всей среды.

Обновленный ответ: Чтобы использовать зависимости maven, выполните следующие шаги:

  • Найти в проекте A классы, используемые проектом B
  • Удалить эти классы из проекта A
  • Создать новый проект C
  • Добавить удаленные классыв проекте A к проекту C
  • Создайте и установите проект C (mvn -install)
  • Измените pom проекта A, чтобы использовать зависимость проекта C
  • Buildпроект A
  • Измените pom проекта B, чтобы использовать зависимость проекта C
  • Создайте проект B
  • Используйте уникальный jar A.jar, чтобы создать образ докера для A
  • Используйте уникальный jar B.jar, чтобы создать образ докера для B
...