Сборка и деплой
Готовность и healthcheck
Когда развёртывание считается успешным.
После запуска новой версии DeployCode не сразу помечает развёртывание успешным, а проверяет готовность:
- все ожидаемые реплики сервиса запущены именно с новым образом;
- если в образе задан healthcheck, контейнеры в состоянии
healthy; - это состояние держится без сбоев не меньше 10 секунд.
На всю проверку отводится 10 минут. Если за это время версия не стала готовой, развёртывание завершается с ошибкой, но сервис может продолжать запускаться.
Без healthcheck готовность подтверждает только то, что процесс запустился, — но не то, что приложение отвечает по HTTP.
Healthcheck
Healthcheck берётся из образа — инструкция HEALTHCHECK. Образы, которые собирает
Railpack, её не содержат, а задать healthcheck в настройках сервиса пока
нельзя.
Если проверка не прошла
| Сообщение | Что значит |
|---|---|
| Истекло время ожидания готовности новой версии | За 10 минут версия не стала готовой. Проверьте журнал, порт и healthcheck |
| Docker приостановил обновление | Контейнер новой версии не запустился или не прошёл healthcheck |
| Docker начал откат обновления | Docker вернул предыдущую версию — новая не подтверждена |
| Эта попытка заменена другим обновлением сервиса | Пока шла проверка, сервис обновили ещё раз |
| Развёрнутый Docker-сервис не найден на сервере запуска | Сервис удалили с сервера во время проверки |
| Не удалось проверить Docker на сервере запуска | Панель не смогла связаться с Docker — проверьте сервер |
Частая причина в первые запуски — приложение слушает не тот порт, что указан в домене. См. Фреймворки → Порт.