Создание образа Docker при удаленной установке приложения - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть приложение, которое состоит из трех серверов, по одному компоненту на каждом.

  • Сервер1 = Компонент А
  • Сервер2 = Компонент B
  • Сервер3 = Компонент C

Когда вы запускаете установку на Сервер1, заставляет установить Компонент B на Сервер2 и Компонент С на Сервер3, в дополнение к установке Компонента А на Сервер1.

Если бы я начал установку на Server2, он также установил бы другие компоненты на соответствующих серверах.

Это также означает, что должны быть запущены «удаленные» серверы, так как он подключается к этим удаленным серверам через SSH для копирования файлов и их установки. Да, он также отказывается устанавливать приложение на узел, если обнаруживает, что он уже есть.

Это просто то, как это работает, чтобы сделать его «более легким» для неопытного народа, но труднее ограничить его. Поставщик знает, и, возможно, это изменится в будущем, но сейчас это так.

Я пытаюсь разработать стратегии для создания отдельных изображений для каждого компонента. Несколько мыслей:

  1. Запустите установку на каждом сервере и просто создайте образы таким образом. Это означало бы, что мне нужно будет организовать начальные свежие удаленные контейнеры при создании образа для каждого компонента.
  2. Запустите 3x свежих контейнеров, запустите установку на любом из них, затем используйте docker commit для создания образов. Сработало бы, но мне не нравится, что невозможно кодифицировать все шаги контейнера.
  3. Может быть, многоступенчатый Dockerfile? Я не совсем уверен в этом.
  4. Что-то еще?

Цените любую помощь здесь.

1 Ответ

0 голосов
/ 01 ноября 2018

Если у вас нет контроля над этой установочной системой - она ​​ требует трех хостов и устанавливает удаленные соединения как часть процесса установки с двумя другими - тогда будет трудно или невозможно превратить ее в Docker изображения, и поставщик приложения будет в гораздо лучшем положении, чтобы обеспечить это для вас.

Если вы знаете, что установка только устанавливает программное обеспечение в определенные места, то в принципе вы можете запустить установку один раз, сделать tar-файлы размером /opt/theapp в каждой из трех систем, а затем написать минимальное количество файлов Docker. что ADD содержимое файла tar для каждого из трех изображений. Тем не менее, даже тогда вы ожидаете, что установщик выполнит некоторую настройку для вас (например, кажется, что имена хостов трех систем вероятны), и вам придется воссоздать его как сценарий точки входа во время запуска или что-то подобное.

Вместо того, чтобы использовать Docker, вам лучше использовать систему виртуальной машины или вашего любимого облачного провайдера, запустить установщик и создать три образа системного уровня, которые вы можете повторно развернуть позже. Если Docker действительно требование, то работа с поставщиком будет лучшим подходом.

...