- хост dcape, если приложение создает www сервис, то в переменной 'Makefile' APP_SITE указывается имя доступа к сервису (например, aplication.dev.lan)
- публичный ключ развертывания деплоя (доступен по ссылке на cis.dev.lan)
- пароль, который должен быть передан в хуке (задан в конфиге dcape)
- Cоздать зеркало в gitea (если репозиторий размещен не на встроенном gitea), репозиторий в gitea должен быть приватным, для использования ssh ключа.
- Составить и добавить в репозиторий файлы
Makefile
иdocker-compose.yml
(примеры) - настроить в gitea "Автоматическое обновление"
- выполнить тестовую доставку webhook для выполнения
make .env
(сохранения .env в хранилище конфигураций) - выгрузить конфигурацию, активировать деплой в параметре
_CI_HOOK_ENABLED
, сохранить (утилита ) - повторить тестовую доставку webhook или сделать
git push
- приложение будет развернуто на сервере dcape
- добавить ключ развертывания деплоя (доступен по ссылке на 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
- URL хука: если gitea и dcape на одном хосте -
Параметр branch=default
позволяет произвести деплой копии приложения без внесения изменений в репозиторий проекта.
Если изменить default на нужное имя ветки и тега, то можно выполнить удаление деплоя.
См. также: Описание алгоритма деплоя
Локально можно развернуть полный аналог iac (в dcape есть gitea - его можно развернуть, настроить как upstream, туда пушить и наблюдать локально весь процесс деплоя). А если локальный ip доступен снаружи, можно завести dcape на порт 80 и включить https.
Т.е. отличие только в том, что не получится использовать по https те же доменные имена, что и на сервере, т.к. у локального хоста другой ip.
Чтобы сгенерить новый .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
и удалить каталог деплоя (конфиг сохраняется).