Зависимости приложений (другие приложения) - PullRequest
0 голосов
/ 30 августа 2018

Нам нужно развернуть наши 4 приложения (3 приложения с весенней загрузкой и 1 zookeper) со стеком докеров. Как сказал нам наш разработчик из DevOps, в стеке докеров нет способа определить, какое приложение будет зависеть от другого, как в docker compose, поэтому нам, как разработчикам, нужно решать это в коде.

Можете ли вы сказать мне, как это сделать или как лучше? Одно из наших приложений должно быть запущено в первую очередь, потому что это приложение управляет базой данных (миграция и т. Д.). Далее можно запускать другие приложения, когда база данных подготовлена. Есть идеи? Спасибо.

1 Ответ

0 голосов
/ 31 августа 2018

если вы хотите запустить все 4 приложения в одном док-контейнере, вы можете обратиться к этому сообщению Запуск нескольких сервисов в контейнере

если вы хотите, чтобы Docker составлял 4 приложения, вы можете сослаться на этот пост Порядок запуска , он использует depen_on изображения других ваших приложений

независимо от способа, вы должны написать сценарий, чтобы проверить, закончило ли ваше первое приложение для управления базой данных, вы можете обратиться к wait-for-postgres.sh , чтобы узнать, как использовать sleep в оболочке для многократной проверки статуса вашего первого приложения

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

  1. установить для общей статической переменной значение false public static boolean is_app_start = false;
  2. когда вы закончите управлять своей базой данных, измените это значение на true;
  3. записать @ RequestMapping ("/ is_app_start") в свой контроллер, чтобы вернуть это значение
  4. используйте curl в вашем скрипте, чтобы проверить значение
...