Skip to content

Latest commit

 

History

History
55 lines (38 loc) · 5.01 KB

DEPLOY.md

File metadata and controls

55 lines (38 loc) · 5.01 KB

Адаптация приложения для развертывания в среде dcape

Необходимые данные, для деплоя приложения под dcape (dcape развернут на dev.lan)

  • хост dcape, если приложение создает www сервис, то в переменной 'Makefile' APP_SITE указывается имя доступа к сервису (например, aplication.dev.lan)
  • публичный ключ развертывания деплоя (доступен по ссылке на cis.dev.lan)
  • пароль, который должен быть передан в хуке (задан в конфиге dcape)

Порядок действий по адаптации приложения

Вариант с ипользованием встроенного gitea, dcape развернут на хосте: dev.lan

  • Cоздать зеркало в gitea (если репозиторий размещен не на встроенном gitea), репозиторий в gitea должен быть приватным, для использования ssh ключа.
  • Составить и добавить в репозиторий файлы Makefile и docker-compose.yml (примеры)
  • настроить в gitea "Автоматическое обновление"
  • выполнить тестовую доставку webhook для выполнения make .env (сохранения .env в хранилище конфигураций)
  • выгрузить конфигурацию, активировать деплой в параметре _CI_HOOK_ENABLED, сохранить (утилита )
  • повторить тестовую доставку webhook или сделать git push - приложение будет развернуто на сервере dcape

Настройка автоматического обновления в gitea

  • добавить ключ развертывания деплоя (доступен по ссылке на cis.dev.lan)
  • создать хук gitea с паролем из настроек dcape и ссылкой на хук
    • URL хука: если gitea и dcape на одном хосте - http://webhook:9000/hooks/local?branch=default, иначе - https://cis.dev.lan/hooks/remote?branch=default
      • события хука: Push, Create

Параметр branch=default позволяет произвести деплой копии приложения без внесения изменений в репозиторий проекта. Если изменить default на нужное имя ветки и тега, то можно выполнить удаление деплоя.

См. также: Описание алгоритма деплоя

Информация для разработчика

Отличия локальной копии dcape от сервера деплоя

Локально можно развернуть полный аналог iac (в dcape есть gitea - его можно развернуть, настроить как upstream, туда пушить и наблюдать локально весь процесс деплоя). А если локальный ip доступен снаружи, можно завести dcape на порт 80 и включить https.

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

Если в Makefile изменили шаблон создания .env

Чтобы сгенерить новый .env, не потеряв настройки из старого, надо старый переименовать в .env.bak и выполнить make .env - значения совпадающих переменных будут перенесены в новый конфиг.

Это достигается помещением в Makefile строк

-include $(CFG).bak
-include $(CFG)
export

Удаление деплоя

Чтобы удалить на сервере контейнер и каталог деплоя проекта для репозитория organization--name_of_repo--branch (организация--проект--ветка), надо создать ветку organization--name_of_repo--branch. Другой вариант - если в проект никто не пушит, можно в хуке поменять default на BRANCH-rm и выполнить "Проверить доставку", после чего вернуть default.

Реакция хука на создание ветки с суффиксом "-rm" - выполнить make stop и удалить каталог деплоя (конфиг сохраняется).