[英]Can't deploy to Heroku the app with RJB gem
我已经设置了 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 应用程序,并且所有环境变量都相同。
怎么了?
我有同样的问题,如果其他人想知道,这就是Heroku告诉我的:
默认情况下,编译应用程序时,配置变量不可用 - 仅在运行时。
您可以通过确保安装最新的heroku gem来更改此设置,然后启用user_env_compile lab标志
$ heroku labs:启用user-env-compile
这将使gem安装时可以使用JAVA_HOME,希望能让你解决这个问题。
首先通过使用找到JAVA_HOME PATH,
heroku run 'which java |xargs readlink -f | sed "s:bin/java::"'
它会回报你,
usr/lib/jvm/java-6-openjdk/jre
现在使用它来了解heroku上的JAVA_HOME路径。 现在在heroku和Gemfile中设置JAVA_HOME路径
在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)
通过在我的Gemfile中添加以下内容,让Heroku安装依赖于$ JAVA_HOME的gem:
# 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)
您是否尝试将应用程序部署到其他堆栈?
我做了一点搜索,这似乎符合你的解释。 https://github.com/carlhuda/bundler/issues/1742
可能是你的报道,不是吗?
我建议你联系Heroku并让他们调查一下。
看起来它缺少可能在您当前堆栈上不可用的依赖项。
从heroku cedar-14迁移到heroku-16或heroku-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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.