将JHipster应用程序部署到Heroku

时间:2014-03-26 05:11:26

标签: heroku jhipster

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

4 个答案:

答案 0 :(得分:5)

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

第一个问题,Heroku将我的应用程序检测为Node.js,因为package.json文件位于根目录中。好的,只需创建一个.slugignore文件并忽略package.json即可轻松解决。现在它识别出pom.xml并构建。

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

我很想知道是否有人比 Heroku 有更多的运气,但我会分享我找到的东西。

<强>更新

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

以下是在几乎没有负载的情况下运行时来自UI的JVM统计信息: enter image description here

答案 1 :(得分:5)

我已经使用你的评论为JHipster创建了一个Heroku子生成器:

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

我已经有了它的工作,在成为官方之前我只需要进行一些调整。

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

答案 2 :(得分:3)

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

Buuut,有两个新问题:

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

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

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

    不兼容

    我将尝试Amazon Elastic Beanstalk。你有其他选择吗?

答案 3 :(得分:0)

我已经成功地向Heroku部署了一个应用程序(https://smallgis.herokuapp.com/#/login),您应该在Heroku中创建一个应用程序并安装mlab add on(在我的情况下是mongodb),你应​​该总是保留那个小于300 MB的slug 。将您的项目链接到您创建的heroku应用程序。

heroku登录

创建一个新的Git存储库

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

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

部署您的应用

  • git add。
  • git commit -m“changes ....”
  • git push heroku master(它构建并压缩所有应用程序和你 可以在默认的heroku应用程序URL()中可视化。
相关问题