DeployCode
Сборка и деплой

Жизненный цикл деплоя

Как приложение проходит путь от запуска до работающей версии.

Развёртывание — одна попытка собрать приложение и запустить новую версию на сервере. История развёртываний видна на странице Деплои (в пределах выбранной области) и в ленте «Последние развёртывания» на странице сервиса.

Как запустить

На странице сервиса:

КнопкаЧто делает
РазвернутьСобирает последний коммит выбранной ветки и выкатывает его вместо текущей версии
ПересобратьСобирает сервис заново — полезно, когда сборка сломалась, а код не менялся

Запускать развёртывания могут участники с соответствующим правом в их роли. Если кнопка неактивна, подсказка объяснит причину: не подключён репозиторий, не выбран сервер, сервер не отвечает и т. п.

Новую версию можно запустить и без сборки — из каталога образов, см. Откаты и артефакты.

Этапы

  1. Очередь. На одном сервере одновременно выполняется одно развёртывание, остальные ждут со статусом «В очереди». Новый запуск не отменяет текущий.
  2. Сборка. DeployCode забирает код, собирает образ и пишет всё в журнал.
  3. Запуск. Docker Swarm заменяет контейнеры сервиса новой версией.
  4. Проверка готовности. DeployCode ждёт, пока все реплики новой версии запустятся и простоят без сбоев; если в образе есть healthcheck — пока он не станет healthy. Подробнее — Готовность и healthcheck.

Статусы

СтатусЧто значит
В очередиЖдёт, пока сервер освободится
ИдётСборка или запуск выполняются
УспешноНовая версия запущена и прошла проверку готовности
ОшибкаРазвёртывание не удалось — нажмите на статус, чтобы увидеть причину
ОтменёнРазвёртывание отменено
Отмена запрошенаОтмена принята, сборка остановится перед запуском образа
Связь потерянаИсполнитель давно не сообщал о ходе развёртывания, см. ниже

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

Отмена

Отменить можно в меню развёртывания в истории — «Отменить развёртывание»:

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

Если связь с развёртыванием потеряна

Во время работы развёртывание регулярно сообщает о себе. Если сообщений нет больше 45 секунд, в истории появляется «Связь потеряна» — например, при перезапуске панели.

DeployCode сверяется с сервером и решает, что делать:

  • если новая версия ещё не начала запускаться, развёртывание завершается с ошибкой — посмотрите в журнале последний выполненный шаг и запустите заново;
  • если запуск уже начался, DeployCode до 10 минут следит за Docker и завершает развёртывание по факту: успешно или с ошибкой.

Подробности запуска

В истории у каждого развёртывания есть меню: «Сведения о запуске», «Открыть журнал», «Скопировать ID», «Открыть сервис». В карточке развёртывания три вкладки:

  • Запуск — коммит, ветка, репозиторий, сервер, время начала и окончания, длительность, образ и ошибка, если она была;
  • Логи — журнал развёртывания;
  • Изменения — коммиты и файлы, изменившиеся с предыдущего успешного развёртывания.

Сколько хранится история

Для каждого приложения хранятся 10 последних развёртываний вместе с журналами — более старые удаляются при новом запуске.

На этой странице