Не удается развернуть в Heroku приложение с гемом RJB - PullRequest
5 голосов
/ 22 марта 2012

Я установил переменную JAVA_HOME

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

, проверил, что конфиг heroku показывает эту переменную со значением, затем нажал:

git push heroku master

и все еще получает

JAVA_HOME is not set

ошибка при установке RJB gem.

Я могу успешно развернуть этот источник в другом приложении Heroku, и все переменные среды одинаковы.

Что не так?

Ответы [ 5 ]

8 голосов
/ 27 марта 2012

У меня был тот же вопрос, и в случае, если кто-то еще захочет узнать, вот что Heroku сказал мне:

По умолчанию переменные конфигурации не доступны при компиляции приложения -только во время выполнения.

Вы можете изменить это, убедившись, что у вас установлена ​​последняя версия heroku gem, а затем активируйте флаг user_env_compile lab

$ heroku labs: включить user-env-compile

это сделает JAVA_HOME доступным после установки гема, надеюсь, поможет вам решить эту проблему.

5 голосов
/ 30 июня 2014

Сначала найдите JAVA_HOME PATH, используя,

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

Он вернет вас,

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

Используя это, теперь вы узнали о пути JAVA_HOME на heroku.Теперь установите путь JAVA_HOME в heroku и Gemfile

на heroku cli:

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

В Gemfile сверху:

java_home = '/usr/lib/jvm/java-6-openjdk'
ENV['JAVA_HOME'] = java_home if Dir.exist?(java_home)
2 голосов
/ 19 февраля 2013

Получил 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)
1 голос
/ 22 марта 2012

Вы пытались развернуть свое приложение в другой стек?

Я немного искал, и это похоже на ваше объяснение. https://github.com/carlhuda/bundler/issues/1742

Возможно, ваш отчет, не так ли?

Я бы посоветовал вам связаться с Heroku и попросить их разобраться в этом.

Кажется, что в нем отсутствуют зависимости, которые могут быть недоступны в вашем текущем стеке.

0 голосов
/ 03 июля 2019

для перехода от герою кедр-14 к героку-16 или героку-18

$ heroku config:unset JAVA_HOME #remove JAVA_HOME env if exists
$ heroku stack:set heroku-18
$ heroku buildpacks:add --index 1 heroku/jvm
$ git push heroku master
...