Статьи

Развертывание приложений WildFly Swarm для Heroku

Приложения WildFly Swarm можно развернуть в Heroku , просто добавив несколько файлов в развертывание. В этой статье я покажу изменения, которые необходимо внести в приложение WildFly Swarm, и как затем развернуть приложение в Heroku. Я покажу, как развернуть мое приложение WildFly Swarm на примере Fruits в Heroku. Исходный код этого приложения можно клонировать из GitHub по адресу https://github.com/doobrie/swarm-rs.

Создание приложения Heroku

Предполагая, что у вас установлен Heroku Toolbelt , создание приложения Heroku заключается в открытии командной строки / терминала в корне проекта WildFly Swarm (для этого примера проекта Maven) и выполнении команды heroku create .

1
2
3
$>heroku create
Creating app... done, stack is cedar-14
https://mighty-temple-xxxxx.herokuapp.com/ | https://git.heroku.com/mighty-temple-xxxxx.git

Это создает приложение Heroku с добавлением git remote, heroku , готовое для развертывания вашего приложения.

Определение среды выполнения Java

Heroku может автоматически определить, что ваше приложение основано на Java, но необходимо указать, какую версию Java следует запускать. Чтобы определить это, создайте файл с именем system.properties в корневом system.properties проекта, содержащий одну строку, указывающую требуемую версию Java.

1
java.runtime.version=1.8

Как оформить заявку

Heroku использует Procfile чтобы определить, как должно выполняться ваше приложение. Этот файл также должен находиться в корне вашего проекта. Чтобы запустить веб-приложение, мы должны сказать Heroku запустить Web Dyno. Нам также нужно указать, какую команду запускать и на каком порту запускать.

В Heroku порт, который должны прослушивать приложения, определяется переменной среды $PORT . Приложение WildFly Swarm по умолчанию работает на порту 8080, но это можно изменить, добавив переменную среды swarm.http.port . Чтобы запустить приложение WildFly Swarm, Procfile должен выглядеть примерно так

1
web:    java -Dswarm.http.port=$PORT -jar target/swarm-rs-1.0-SNAPSHOT-swarm.jar

Так как мы запускаем «толстый» Jar WildFly Swarm, дополнительные записи пути к классу не требуются — все, что нужно, это имя файла Jar, содержащего приложение, swarm-rs-1.0-SNAPSHOT-swarm.jar в этом пример.

Развертывание приложения

Это все, что требуется для работы с Heroku и WildFly Swarm. Вы можете видеть, что мы не внесли никаких изменений в само приложение, кроме добавления файла system.properties чтобы определить, какую среду выполнения Java использовать, и Procfile чтобы определить, как запустить приложение.

Чтобы развернуть приложение в Heroku, убедитесь, что эти файлы добавлены и зафиксированы в локальном репозитории Git, а затем отправьте изменения в Heroku.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
$>git push heroku master
 
remote:        [INFO] ------------------------------------------------------------------------
remote:        [INFO] BUILD SUCCESS
remote:        [INFO] ------------------------------------------------------------------------
remote:        [INFO] Total time: 01:14 min
remote:        [INFO] Finished at: 2016-02-07T21:49:57+00:00
remote:        [INFO] Final Memory: 36M/389M
remote:        [INFO] ------------------------------------------------------------------------
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote:
remote: -----> Compressing...
remote:        Done: 96.9M
remote: -----> Launching...
remote:        Released v4
remote:        https://mighty-temple-xxxxx.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy.... done.
To https://git.heroku.com/mighty-temple-xxxxx.git
 * [new branch]      master -> master

Чтобы убедиться, что приложение работает, перейдите к /api/fruit Url приложения. URL-адрес приложения отображается на консоли после нажатия на Heroku.

Вывод

Я дал обзор того, как развертывать приложения WildFly Swarm в Heroku. Надеюсь, вы согласитесь, что это простой процесс, позволяющий быстро приступить к работе с Heroku.