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

Неужели кому-то удавалось внедрить приложение JHipster в Heroku? Я думаю, что требуется специальный сборщик, но я не уверен на 100%, поскольку я новичок в Heroku.

Ответ 1

Я столкнулся с двумя проблемами при попытке развертывания в Heroku.

Первая проблема, Heroku обнаруживает мое приложение как Node.js, так как файл package.json находится в корне. Хорошо, легко исправить, поскольку вы просто создаете файл .slugignore и игнорируете package.json. Теперь он распознал pom.xml и строит.

Вторая проблема: размер пули по умолчанию для jhipster равен 340 МБ. "Slug" - это, в основном, размер всех зависимостей, втянутых при создании вашего приложения. Максимальный размер пули, разрешенный Heroku, составляет 300 МБ. Вместо этого попробуйте сортировать зависимости и отменить функциональность, которую я переключил на использование Amazon Elastic Beanstalk. Вместо того, чтобы строить на серверах Amazon, вы развертываете сжатый файл .war в Tomcat env, и это отлично работает.

Мне было бы интересно узнать, есть ли у кого-то больше удачи, чем у меня с Heroku, но хотя я бы поделился тем, что нашел.

Обновление

Я успешно развернул приложение jhipster для акций на t1.micro(самый маленький) экземпляр на Elastic Beanstalk при подключении к источнику данных Amazon RDS PostgreSQL. Этот экземпляр подходит для свободного уровня (1 год) и дает вам 1 ГБ памяти. Единственное изменение конфигурации, которое я должен был сделать, это накачать пространство JVM Heap + PermGen до 512 МБ и 128 МБ соответственно. Это было так же просто, как запустить "mvn package -Pprod", а затем взять app_name.war.original(тот, который не был встроен в tomcat) и развернуть его на сервере Tomcat экземпляра.

Вот статистика JVM из пользовательского интерфейса при запуске в значительной степени без нагрузки: enter image description here

Ответ 2

Я запустил подгенератор Heroku для JHipster, используя ваши комментарии:

https://github.com/jhipster/generator-jhipster/tree/master/heroku

У меня уже есть работа, мне просто нужна настройка, прежде чем она станет официальной.

Что касается проблем с памятью и временем загрузки, я получил оба действия нормально.

Ответ 3

Две проблемы, упомянутые в @CMikeB1, могут быть решены с помощью настраиваемого buildpack. Существует вилка, соединяющая java и node: https://github.com/lordviktor/heroku-buildpack-java-node-yeoman-submodule. Я разветкил это, чтобы удалить каталог .m2 и уменьшить размер slug https://github.com/jbaris/heroku-buildpack-java-node-yeoman-submodule.

Buuut, есть две новые проблемы:

  • Ошибка R14 (превышена квота памяти): свободная учетная запись имеет 512 МБ ОЗУ: это приводит к замене динамиков и снижению производительности. Рассмотрим, что для приложения JHipster по умолчанию требуется около 800 МБ ОЗУ.

  • Ошибка R10 (время ожидания загрузки) → Не удалось привязать веб-процесс к $PORT в течение 60 секунд после запуска: если приложение не может встать в течение 60 секунд после запуска, его рассмотренный сбой.

Обратите внимание, что первая проблема влияет на вторую. Мой (текущий) вывод: свободная учетная запись Heroku несовместима с JHipster: S

Я попробую Amazon Elastic Beanstalk. Вы порекомендовали другую альтернативу?

Ответ 4

Я успешно применил приложение к Heroku (https://smallgis.herokuapp.com/#/login), вы должны создать приложение в Heroku и установить mlab add on (mongodb в моем случае), вы всегда должны поддерживать размер слизи менее 300 МБ. Свяжите свой проект с созданным вами проектом heroku.

имя героя

Создайте новый репозиторий Git

Инициализировать репозиторий Git в новом или существующем каталоге

  • cd my-project/
  • git init
  • heroku git: remote -a appname

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

  • git добавить.
  • git commit -m "changes..."
  • git push heroku master (он создает и сжимает все приложение, а вы может визуализировать в URL-адресе приложения heroku по умолчанию)