Шаблоны зависимостей приложений Kubernetes / Docker - PullRequest
0 голосов
/ 28 февраля 2019

В моем проекте есть сервер приложений и библиотека C ++.Библиотека не зависит от сервера приложений.У поставщика есть образ Docker для сервера приложений.Мне нужно развернуть библиотеку C ++, которая должна быть доступна из каждого узла / модуля сервера приложений.

Я написал Dockerfile, который основывается на образе поставщика, компилируя и копируя библиотеки на место.Это работает, однако, каждый раз, когда появляется новая версия сервера приложений, мне нужно заново создавать библиотеку C ++ с нуля.Учитывая отсутствие зависимостей, они не кажутся оптимальными.

Наивно, я ожидал, что смогу собрать библиотеку C ++ в «пустой» образ и смонтировать его (как файловую систему) в каждом модуле.,Таким образом, сервер и библиотека поддерживаются раздельно.

Является ли сборка на основе поставщика Dockerfile «правильным» способом для разработки этого?Или есть решение, более похожее на мое «идеализированное» видение?

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

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Как вы сказали, вы можете собрать библиотеку C ++ в "пустой" образ.И для всех развертываний вы можете использовать это как базовый образ.Таким образом, вы можете избежать создания библиотеки для каждого развертывания.

Пример: создание образа с помощью библиотеки C ++.Давайте назовем это lib-img.Когда вендор строит образ, он может использовать lib-img в качестве базового образа, вы также можете добавить в lib-img дополнительные зависимости, которые необходимы вендору.

Вы также можете использовать контейнеры init для загрузки библиотеки встручки.

0 голосов
/ 11 апреля 2019

Используя Kubernetes, у вас есть как минимум два варианта управления библиотекой отдельно от образа контейнера:

  1. Инициативные контейнеры .Если вы поместили свою библиотеку на внешний ресурс, вы можете использовать Init container до , загрузить и поместить ее в файловую систему pod сервера приложений.
  2. Объемы .Вы также можете поместить библиотеку в сетевое хранилище и подключить ее как том в режиме доступа ReadOnlyMany к модулям сервера приложений.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...