Перейти к содержимому
Главная страница » Автоматическое развертывание с помощью Portainer

Автоматическое развертывание с помощью Portainer

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

Если у вас не запущен сервис Portainer, вы можете настроить его и подключиться к кластеру Docker Swarm. Я использую бизнес-версию Portainer с бесплатной подпиской на 3 узла. Вы можете бесплатно использовать бизнес-версию Portainer, если у вас 3 или менее узлов, или можете использовать версию для сообщества. Вы можете запросить лицензионный ключ, как это сделать описано тут.

Подход, который мы собираемся использовать, предполагает следующую последовательность действий.

  1. Мы настроим стек Docker в Portainer с помощью репозитория GitHub для запуска наших веб-сервисов
  2. Portainer предоставит URL-адрес веб-перехватчика, который мы сможем использовать для повторного развёртывания приложений с GitHub
  3. Мы создадим в GitHub событие веб-хука для действий при коммите и укажем URL-адрес веб-хука Portainer
  4. Когда мы отправляем изменения на Github, Github вызывает веб-хук Portainer, чтобы сообщить об изменениях, а Portainer загружает репозиторий с Github и выполняет повторное развёртывание

Ниже приведены подробные инструкции по реализации этого процесса. Сначала создайте стек в Portainer, указав репозиторий на Github. Репозиторий может быть частным или публичным. Для частного репозитория необходимо настроить аутентификацию.

На скриншоте выше видно, что при создании стека с использованием репозитория Git включена аутентификация. Также в конце скриншота можно заметить опцию обновления GitOps. Ниже приведены возможные варианты действий при включенном переключателе.

Есть два возможных варианта автоматического развёртывания. Первый — это вариант с извлечением, при котором Portainer будет проверять репозиторий с заданным интервалом на наличие изменений и развёртывать код при его изменении. Я выбрал веб-хук, который предоставляет ссылку для запуска при необходимости повторного развёртывания кода. Мы будем использовать эту ссылку в событиях Github для вызова при коммите.

Большинство полей на скриншотах не требуют пояснений, поэтому я не буду вдаваться в подробности, но вы можете задать мне любые вопросы в комментариях.

Теперь мы войдём в Github, чтобы настроить события. Выберите репозиторий и в меню слева выберите «Вебхуки», затем нажмите «Добавить вебхук». В поле «URL полезной нагрузки» введите URL, скопированный из Portainer. В разделе «События для уведомления» можно выбрать только события «Отправка», так как вы хотите выполнять повторное развёртывание только при отправке данных в репозиторий. Также можно настроить развёртывание для других событий Git.

После настройки всё готово к работе. Когда вы отправите что-то в этот репозиторий, Github вызовет ваш веб-хук из Portainer, и тот автоматически развернёт ваш код.

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

Перевод инструкции.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *