2012-03-22 7 views
5

He establecido la variable JAVA_HOMENo se puede implementar en Heroku la aplicación con la gema RJB

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

comprobado que heroku config muestra esta variable con el valor, luego empujó:

git push heroku master 

y aún obtener

JAVA_HOME is not set 

error mientras bundler está instalando RJB gem.

Puedo implementar satisfactoriamente la misma fuente en otra aplicación Heroku, y todas las variables de entorno son las mismas.

¿Qué pasa?

+0

que desea es obtener la última actualización de su fin, porque soy tratando de hacer lo mismo ¿Lograste hacerlo funcionar en Heroku? Gracias. – toy

Respuesta

8

que tenían la misma pregunta, y en caso de que alguien más quiere saber, esto es lo que me dijo Heroku:

Por defecto las variables de configuración no están disponibles cuando se compila la aplicación - solamente en tiempo de ejecución.

Puede cambiar esto asegurándose de que usted tiene la última joya heroku instalar, a continuación, active la bandera de laboratorio user_env_compile

$ laboratorios heroku: permitir al usuario-env-compilar

esto hará que JAVA_HOME disponible cuando la gema se instala, ojalá superando este problema.

+0

El comando ha cambiado, consulte aquí: https://devcenter.heroku.com/articles/labs-user-env-compile – Hendrik

+0

@Hendrik He actualizado la respuesta. –

+0

esta opción no está disponible ahora –

1

¿Ha intentado implementar su aplicación en una pila diferente?

Hice una pequeña búsqueda y esto parece ajustarse a su explicación. https://github.com/carlhuda/bundler/issues/1742

probablemente la suya informe, ¿verdad?

Te aconsejo que te pongas en contacto con Heroku y les pidas que lo investiguen.

Parece que le faltan dependencias que pueden no estar disponibles en su pila actual.

+0

Sí, es mi pregunta sobre Github, y no hay solución. Puedo implementar con éxito la misma fuente en otra aplicación Heroku, y todas las variables de entorno son las mismas. Ya puse una solicitud en Heroku, pero responden una vez al día y estamos como siempre con prisa :). – Paul

+0

¿Pero la otra aplicación se ejecuta en la misma pila? (Cedar por ejemplo) Dudo que JAVA_HOME sea el problema aquí, ya que está fallando durante la creación de rjb. – martinjlowm

+0

Ambos están en cedro. – Paul

2

Tienes Heroku para instalar gemas que dependen de $ JAVA_HOME añadiendo lo siguiente a mi 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

En primer lugar encontramos JAVA_HOME PATH utilizando,

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

Se le devolverá,

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

Usando esto ahora usted vino kn ow acerca de la ruta JAVA_HOME en heroku.Ahora establecer la ruta JAVA_HOME en heroku y en Gemfile

en heroku CLI:

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

En Gemfile en la parte superior:

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