2012-03-22 65 views
5

我設置JAVA_HOME變量不能部署到Heroku的與RJB寶石

heroku config:add JAVA_HOME=/usr/lib/jvm/java-6-openjdk 

檢查了Heroku的配置顯示了值這個變量的應用程序, 然後推:

git push heroku master 

和仍然得到

JAVA_HOME is not set 

bundler安裝RJB gem時出錯。

我可以成功地將同一個源部署到另一個Heroku應用程序,並且所有環境變量都是相同的。

有什麼不對?

+0

只是想從你的最終最新的更新,因爲我試圖做同樣的事情。你有沒有設法在Heroku上工作?謝謝。 – toy 2012-05-08 14:48:36

回答

8

我有同樣的問題,如果任何人想知道,這是Heroku的告訴我說:

默認情況下,當 編譯應用程序的配置變量不提供 - 只在運行時。

您可以通過確保您有最新的Heroku寶石 安裝改變這種狀況,然後啓用user_env_compile實驗室標誌

$ Heroku的實驗室:啓用用戶ENV編譯

這會令時可用JAVA_HOME寶石安裝,希望 讓你過去這個問題。

+0

命令已更改,請參閱: https://devcenter.heroku.com/articles/labs-user-env-compile – Hendrik 2013-04-08 01:01:03

+0

@Hendrik我更新了答案。 – 2013-05-30 20:26:48

+0

此選項現在不可用 – 2014-06-30 09:48:01

1

您是否嘗試將應用程序部署到不同的堆棧?

我做了一些搜索,這似乎適合你的解釋。 https://github.com/carlhuda/bundler/issues/1742

可能是你彙報,是不是?

我建議你聯繫Heroku,並要求他們調查一下。

它似乎缺少依賴關係,可能不會在您當前的堆棧上可用。

+0

是的,這是我在Github上的問題,沒有解決方案。我可以成功地將同一個源部署到另一個Heroku應用程序,並且所有環境變量都是相同的。我已經向Heroku提出了要求,但他們每天回覆一次,我們一如既往地忙碌:)。 – Paul 2012-03-22 14:11:42

+0

但是其他應用程序在同一個堆棧上運行嗎? (例如雪松) 我懷疑JAVA_HOME是這裏的問題,因爲它在製作rjb期間失敗。 – martinjlowm 2012-03-22 14:21:44

+0

兩者都在雪松。 – Paul 2012-03-22 14:26:45

2

得到的Heroku通過向安裝在$ JAVA_HOME依賴寶石下面以我的Gemfile:

# set JAVA_HOME so Heroku will install gems that need it 
heroku_java_home = '/usr/lib/jvm/java-6-openjdk' 
ENV['JAVA_HOME'] = heroku_java_home if Dir.exist?(heroku_java_home) 
5

首先通過使用發現JAVA_HOME PATH,

heroku run 'which java |xargs readlink -f | sed "s:bin/java::"' 

它會回報你,

usr/lib/jvm/java-6-openjdk/jre 

使用這個,現在你來了KN關於heroku上的JAVA_HOME路徑。

heroku config:add JAVA_HOME=/usr/lib/jvm/java-6-openjdk 

在Gemfile中之上:現在在Heroku CLI設置JAVA_HOME路徑的Heroku和Gemfile中

java_home = '/usr/lib/jvm/java-6-openjdk' 
ENV['JAVA_HOME'] = java_home if Dir.exist?(java_home)