5.3.7. Развертывание в облаке Jelastic
Рассмотрим пример сборки и развёртывания приложения в облаке Jelastic.
|
В данный момент развёртывание в облаке возможно для проектов, использующих в качестве сервера базы данных PostgreSQL или HSQL. |
-
Создайте бесплатную тестовую учётную запись в облаке Jelastic с помощью веб-браузера.
-
Создайте новое окружение, в которое будет развёрнут WAR:
-
Кликните New Environment.
-
В открывшемся окне задайте настройки: окружение должно иметь Java 8, Tomcat 8 и PostgreSQL 9.1+ (если в проекте используется база данных PostgreSQL). В поле Environment Name задайте уникальное имя окружения и нажмите на кнопку Create.
-
Если в созданном окружении был использован PostgreSQL, вы получите email с информацией о подключении к БД. Перейдите в административный веб-интерфейс по ссылке в письме, полученном после создания окружения, и создайте пустую базу данных. Выбранное имя базы данных должно быть указано позже в
context.xml.
-
-
Соберите единый Single WAR файл, используя CUBA Studio:
-
Выберите пункт главного меню CUBA > Deployment > WAR Settings.
-
Включите флажок Build WAR.
-
Введите значение
..в поле Application home directory: -
Включите флажки Include JDBC driver и Include Tomcat’s context.xml.
-
Если ваш проект использует базу данных PostgreSQL, нажмите на кнопку Generate рядом с полем Custom context.xml path. Укажите пользователя, пароль, хост и имя базы данных, созданной ранее в веб-интерфейсе Jelastic.
-
Установите флажок Single WAR for Middleware and Web Client.
-
Нажмите на кнопку Generate рядом с полем Custom web.xml path. Studio сгенерирует специальный
web.xmlдля единого WAR, содержащего блоки Middleware и Web Client.
-
Добавьте свойство
cuba.logDirв окне App properties:appProperties = ['cuba.automaticDatabaseUpdate': true, 'cuba.logDir': '${catalina.base}/logs'] -
Нажмите на кнопку OK. В конец файла build.gradle добавилась задача сборки buildWar:
task buildWar(type: CubaWarBuilding) { includeJdbcDriver = true includeContextXml = true appProperties = ['cuba.automaticDatabaseUpdate': true, 'cuba.logDir' : '${catalina.base}/logs'] webXmlPath = 'modules/web/web/WEB-INF/single-war-web.xml' appHome = '..' coreContextXmlPath = 'modules/core/web/META-INF/war-context.xml' } -
Если ваш проект использует HSQL, откройте задачу
buildWarв файлеbuild.gradleи добавьте свойствоhsqlInProcess = true, чтобы запустить встроенный сервер HSQL при развертывании WAR файла. Убедитесь, что свойствоcoreContextXmlPathне задано.task buildWar(type: CubaWarBuilding) { appProperties = ['cuba.automaticDatabaseUpdate': true, 'cuba.logDir': '${catalina.base}/logs'] appHome = '..' includeContextXml = true webXmlPath = 'modules/web/web/WEB-INF/single-war-web.xml' includeJdbcDriver = true hsqlInProcess = true } -
Запустите сборку, выбрав
buildWarчерез командную строку:gradlew buildWarВ результате в подкаталоге
build\distributions\warпроекта будет создан файлapp.war.
-
-
Для развертывания WAR-файла в Jelastic используйте задачу Gradle deployWar:
task deployWar(type: CubaJelasticDeploy, dependsOn: buildWar){ email = **** password = **** hostUrl = 'app.j.layershift.co.uk' environment = 'my-env-1' } -
По завершению процесса развёртывания CUBA-приложение будет доступно в облаке Jelastic. Чтобы его открыть, воспользуйтесь URL вида
<environment>.<hostUrl>в браузере.Например:
http://my-env-1.j.layershift.co.ukВы также можете открыть приложение с помощью кнопки Open in Browser, расположенной на панели окружений в Jelastic.