2012-03-22 13 views
5

mam ustawić zmienną JAVA_HOMEnie można wdrożyć do Heroku aplikację z RJB gem

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

sprawdzone że Heroku config pokazuje tę zmienną o wartości, następnie pchnął:

git push heroku master 

i nadal występuje błąd:

podczas instalacji bundler instaluje klejnotu RJB.

Mogę pomyślnie wdrożyć to samo źródło do innej aplikacji Heroku, a wszystkie zmienne środowiskowe są takie same.

Co jest nie tak?

+0

prostu chcą, aby uzyskać najnowszą aktualizację ze swojego końca, bo jestem próbując zrobić to samo. Udało ci się zrobić to działając na Heroku? Dzięki. – toy

Odpowiedz

8

Miałem to samo pytanie, aw przypadku ktoś chce wiedzieć, to co Heroku powiedział:

Domyślnie zmienne konfiguracyjne nie są udostępniane, gdy aplikacja jest kompilowany - tylko W czasie wykonywania.

Można to zmienić, upewniając się, że masz najnowszą Heroku gem zainstalować, a następnie włączyć flagę Lab user_env_compile

$ Heroku Labs: umożliwienie obsługi ENV-kompilacji

uczyni to JAVA_HOME dostępne podczas klejnot instaluje, mam nadzieję, że ominie ten problem.

+0

Komenda została zmieniona, patrz tutaj: https://devcenter.heroku.com/articles/labs-user-env-compile – Hendrik

+0

@Hendrik Zaktualizowałem odpowiedź. –

+0

ta opcja nie jest teraz dostępna –

1

Czy próbowałeś już wdrożyć aplikację do innego stosu?

Zrobiłem trochę wyszukiwania i wydaje się to pasować do wyjaśnienia. https://github.com/carlhuda/bundler/issues/1742

Prawdopodobnie twój raport, prawda?

Poradziłbym ci skontaktować się z Heroku i poprosić o sprawdzenie.

Wygląda na to, że brakuje zależności, które mogą nie być dostępne na bieżącym stosie.

+0

Tak, to jest moje pytanie na Github i nie ma rozwiązania. Mogę pomyślnie wdrożyć to samo źródło do innej aplikacji Heroku, a wszystkie zmienne środowiskowe są takie same. Już wysłałem prośbę o Heroku, ale odpowiadają raz dziennie i jak zwykle się spieszymy :). – Paul

+0

Ale czy druga aplikacja działa na tym samym stosie? (Cedar na przykład) Wątpię, że JAVA_HOME jest tutaj problemem, ponieważ nie działa podczas rjb. – martinjlowm

+0

Obie są na cedrze. – Paul

2

Got Heroku zainstalować klejnotów, które zależą od $ JAVA_HOME przez dodanie następujących do mojego 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

Najpierw znajdź JAVA_HOME PATH za pomocą,

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

Będzie wrócisz,

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

Używanie tego teraz przyszedłeś ow o ścieżce JAVA_HOME na heroku.Teraz ustaw ścieżkę JAVA_HOME w Heroku aw Gemfile

na Heroku CLI:

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

W Gemfile na górze:

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