Вопрос. Как сделать, чтобы TeamCIty разворачивал CUBA приложение на отдельном сервере? Может, я проглядел, но в документации ничего не нашёл.
Заранее спасибо
Добрый день,
Во-первых вам может быть полезно это видео
Оно про Jenkins, но все равно задачи сборки будут похожие.
Разворачивать CUBA-приложение на сервере можно по-разному, это зависит и от вашей среды развертывния.
В вышеуказанном видео начиная с 10:30 используется способ удаленного развертывания с помощью Tomcat-приложения Manager и плагина Jenkins “deploy to container”.
Для Teamcity тоже есть похожий плагин: https://confluence.jetbrains.com/display/TW/Deployer+plugin
Другой вариант - просто подключаться из билд-агента по SSH к удаленному серверу и выполнить следующую последовательность команд, например так:
- скопировать собранный WAR файл на удаленный сервер
- остановить службу Tomcat
- заменить WAR файл в каталоге webapps
- запустить службу Tomcat
Спасибо. А средств CUBA для решения задачи нет? Я нагуглил плагин cargo для градла, но предпочёл бы использовать какое-нибудь стандартное решение.
В CUBA нет встроенных средств или стандартного решения этой задачи.
CUBA не пытается объять необъятное и заменить собой весь технологический стек Java-приложений, это бессмысленно. В арсенале средств релиз-инженера или DevOps есть много средств для развертывания Java-веб-приложений, основанных на Servlet API, и каждый сам решает для себя, что использовать.
В мануале есть инструкции для разных вариантов развертывания:
https://doc.cuba-platform.com/manual-7.2-ru/deployment_variants.html
Мануал читал. Понятно, спасибо
Ещё один вопос. Правильно я понимаю, что достаточно скопировать app,war и app-core.war? Больше ничего загружать не надо?
При обновлениях приложения больше ничего загружать не надо.
В большинстве случаев лучше использовать сборку Single WAR, так удобнее.
Странно, у меня почему-то не стартует приложение при этом. Спасибо, буду дальше разбираться.