2014-03-26 178 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可視化)