2014-03-26 135 views
10

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

+0

我有它的工作直到Heroku上周更新了我的数据库。现在它不起作用。 –

回答

4

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

第一个问题,由于package.json文件位于根中,Heroku检测到我的应用程序为Node.js。好的,只需创建一个.slugignore文件并忽略package.json即可轻松修复。现在它确认了pom.xml并构建。

第二个问题,默认跳跃者的弹头大小约为340mb。 'slug'基本上就是你的应用程序构建的所有依赖关系的大小。 Heroku允许的最大嵌块大小为300MB。而是尝试对依赖关系进行排序,并删除使用Amazon Elastic Beanstalk的功能。而不是建立在亚马逊的服务器上,你将压缩的.war文件部署到Tomcat的环境中,这个工作正常。

我很想知道是否有人比我更幸运Heroku,但尽管我会分享我发现的东西。

更新

我成功地部署了股票jhipster应用到t1.micro上弹性魔豆(最小)的实例,同时连接到亚马逊RDS PostgreSQL的数据源。此实例符合免费级(1年)的条件,并为您提供1GB内存。我必须做的唯一配置更改是将JVM堆+ PermGen空间分别提高到512MB和128MB。这与运行“mvn package -Pprod”一样简单,然后将app_name.war.original(没有嵌入tomcat的那个)并将其部署到实例Tomcat服务器。

在这里,在几乎无负荷运转是从UI的JVM统计: enter image description here

+0

我是JHipster首席开发人员:我不知道这个.slugignore文件,你可以创建一张票并给我们你的配置吗?我想有一个heroku子生成器 –

+0

slu are的细节在这里:https://devcenter.heroku.com/articles/slug-compiler。听起来最好的方法将是@jbaris在下面提到的使用自定义构建包的地方,从https://github.com/heroku/heroku-buildpack-java派生出来。 jhipster-heroku子生成器可能包含procfile,system.properties和.slugignore,但用户仍然需要创建一个指定定制buildpack的应用程序。 – CMikeB1

3

两个问题,@ CMikeB1提到的可以通过使用自定义buildpack来解决。有一个连接java和node的分支: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。你有没有推荐另一种选择?

+1

在连接到Amazon RDS PostgreSQL数据源时,我成功地将库存jhipster应用程序部署到了Elastic Beanstalk上的t1.micro(最小)实例。此实例符合免费级(1年)的条件,并为您提供1GB内存。我必须做的唯一配置更改是抽取JVM堆+ PermGen空间。 – CMikeB1

4

我已经开始了Heroku的子发生器JHipster,使用您的评论:

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

我已经有工作,我只是需要一些调整,它成为官方之前。

关于内存和启动超时问题,我得到了两个工作正常。

+0

鉴于使用jhipster 1.0生成的应用程序,我如何使用https://github.com/jhipster/generator-jhipster/tree/master/heroku?我试过哟jhipster:heroku,但它并没有增加任何新的东西,所以我想我忘了下载或更新的东西。 – ilopezluna

+0

我刚开始它,它还没有发布。您需要使用Git存储库中的开发版本。 –

+0

好的,所以我应该克隆https://github.com/jhipster/generator-jhipster并以某种方式进行编译,以便从github的开发版本中替换我的jhipster生成器。在哪里可以找到有关如何编译它的文档?我看到用java 1.8的system.properties,是否需要? – ilopezluna

0

我已经部署了一个应用程序的Heroku成功地(https://smallgis.herokuapp.com/#/login),你应该建立在Heroku的一个应用程序,并安装MLAB加上(MongoDB的在我的情况),你应该总是十个分量的300 MB的段塞尺寸较小。将您的项目链接到您创建的heroku应用程序。

的Heroku登录

创建一个新的Git仓库

在新的或现有的目录

  • CD我的项目/
  • 的git的init
  • Heroku的git的初始化git仓库:remote -a appname

部署您的应用程序

  • git add。
  • git的承诺-m“变化......”
  • 混帐推Heroku的主(它建立并压缩所有的应用程序,你可以 在默认的Heroku应用程序URL可视化)