2012-03-22 16 views
5

ho impostato la variabile JAVA_HOMENon è possibile distribuire a Heroku l'applicazione con RJB gemma

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

verificato che Heroku config mostra questa variabile con un valore, poi spinto:

git push heroku master 

e continua a ottenere

JAVA_HOME is not set 

errore mentre bundler installa gem di RJB.

Posso installare correttamente la stessa fonte in un'altra applicazione di Heroku e tutte le variabili di ambiente sono uguali.

Cosa c'è che non va?

+0

Voglio solo ottenere l'ultimo aggiornamento dalla tua fine, perché sono cercando di fare la stessa cosa Sei riuscito a farlo funzionare su Heroku? Grazie. – toy

risposta

8

ho avuto la stessa domanda, e nel caso in cui nessun altro vuole sapere, questo è ciò che Heroku mi ha detto:

Per impostazione predefinita le variabili di configurazione non sono messi a disposizione quando l'applicazione viene compilata - solo in fase di esecuzione.

È possibile modificare questo facendo in modo di avere l'ultima Heroku gemma installare, quindi attivare il flag user_env_compile laboratorio

$ laboratori Heroku: abilitare user-ENV-compile

questo renderà JAVA_HOME disponibile quando la gemma si installa, si spera che superando questo problema.

+0

Il comando è stato modificato, vedere qui: https://devcenter.heroku.com/articles/labs-user-env-compile – Hendrik

+0

@Hendrik Ho aggiornato la risposta. –

+0

questa opzione non è disponibile ora –

1

Hai provato a distribuire l'app in un altro stack?

Ho fatto un po 'di ricerca e questo sembra adattarsi alla tua spiegazione. https://github.com/carlhuda/bundler/issues/1742

probabilmente il vostro rapporto, non è vero?

Consiglierei di contattare Heroku e chiedere loro di esaminarlo.

Sembra che manchino le dipendenze che potrebbero non essere disponibili nello stack corrente.

+0

Sì, è la mia domanda su Github e non c'è soluzione. Posso distribuire con successo la stessa fonte a un'altra applicazione di Heroku e tutte le variabili di ambiente sono le stesse. Ho già fatto richiesta a Heroku, ma loro rispondono una volta al giorno e noi siamo come sempre di fretta :). – Paul

+0

Ma l'altra applicazione viene eseguita sullo stesso stack? (Cedar per esempio) Dubito che JAVA_HOME sia il problema qui, dato che non funziona durante la creazione di rjb. – martinjlowm

+0

Entrambi sono in cedro. – Paul

2

Got Heroku installare gemme che dipendono da $ JAVA_HOME aggiungendo quanto segue alla mia 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

prima trovare JAVA_HOME PATH utilizzando,

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

lo restituirà,

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

Utilizzando questo ora sei venuto kn a proposito del percorso JAVA_HOME su heroku.Ora impostare il percorso JAVA_HOME in Heroku e in Gemfile

su Heroku cli:

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

In Gemfile in cima:

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