11

有没有人幸运地将 JHipster 应用程序部署到 Heroku?我认为需要自定义 buildpack,但我不是 100% 确定,因为我是 Heroku 的新手。

4

4 回答 4

6

我已经使用您的评论为 JHipster 启动了 Heroku 子生成器:

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

我已经让它工作了,我只需要在它正式发布之前进行一些调整。

关于内存和启动超时问题,我都可以正常工作。

于 2014-09-03T20:53:43.987 回答
5

我在尝试部署到 Heroku 时遇到了两个问题。

第一个问题,Heroku 检测到我的应用程序,Node.js因为该package.json文件位于根目录中。好的,很容易修复,因为您只需创建一个.slugignore文件并忽略package.json. 现在它识别pom.xml并构建了。

第二个问题,默认 jhipster 的 slug 大小约为 340mb。“slug”基本上是应用程序构建时引入的所有依赖项的大小。Heroku 允许的最大 slug 大小为 300MB。而不是尝试对依赖项进行排序并剥离我切换到使用Amazon Elastic Beanstalk的功能。与其在 Amazon 的服务器上构建,不如将压缩的 .war 文件部署到 Tomcat 环境中,这样可以正常工作。

我很想知道是否有人在Heroku上比我运气好,但尽管我会分享我的发现。

更新

在连接到 Amazon RDS PostgreSQL 数据源时,我成功地将股票 jhipster 应用程序部署到 Elastic Beanstalk 上的 t1.micro(最小)实例。此实例有资格获得免费套餐(1 年)并为您提供 1GB 内存。我必须做的唯一配置更改是将 JVM Heap + PermGen 空间分别提高到 512MB 和 128MB。这就像运行“mvn package -Pprod”然后获取 app_name.war.original(没有嵌入 tomcat 的那个)并将其部署到实例 Tomcat 服务器一样简单。

以下是几乎无负载运行时 UI 中的 JVM 统计信息: 在此处输入图像描述

于 2014-08-20T01:31:17.503 回答
3

@CMikeB1 提到的两个问题可以通过使用自定义构建包来解决。有一个连接 java 和节点的 fork:https ://github.com/lordviktor/heroku-buildpack-java-node-yeoman-submodule 。我已经分叉了这个以删除 .m2 目录并减少 de slug 大小https://github.com/jbaris/heroku-buildpack-java-node-yeoman-submodule

Buuut,有两个新问题:

  1. 错误 R14(超出内存配额):免费帐户有 512 MB 的 RAM:这会导致 dynos 交换和性能损失。考虑默认的 JHipster 应用程序需要大约 800 MB 的 RAM。

  2. 错误 R10(启动超时)-> Web 进程未能在启动后 60 秒内绑定到 $PORT:如果应用程序无法在启动后 60 秒内启动,则认为它已崩溃。

请注意,第一个问题会影响第二个问题。我的(当前)结论:Heroku 免费帐户与 JHipster 不兼容:S

我将尝试 Amazon Elastic Beanstalk。您是否推荐了另一种选择?

于 2014-08-20T13:31:02.253 回答
0

我已成功将应用程序部署到 Heroku(https://smallgis.herokuapp.com/#/login),您应该在 Heroku 中创建一个应用程序并安装 mlab 插件(在我的情况下为 mongodb),您应该始终保持 slug大小小于 300 MB。将您的项目链接到您创建的 heroku 应用程序。

登录

创建一个新的 Git 存储库

在新目录或现有目录中初始化 git 存储库

  • cd 我的项目/
  • 混帐初始化
  • heroku git:remote -a 应用程序名

部署您的应用

  • 混帐添加。
  • git commit -m "更改...."
  • git push heroku master(它构建和压缩所有应用程序,您可以在默认的 heroku 应用程序 url 中可视化)
于 2017-03-29T20:49:38.527 回答