Неужели кому-то удавалось внедрить приложение JHipster в Heroku? Я думаю, что требуется специальный сборщик, но я не уверен на 100%, поскольку я новичок в Heroku.
Развертывание приложения JHipster в 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 из пользовательского интерфейса при запуске в значительной степени без нагрузки:
Ответ 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 по умолчанию)