我正在尝试将指南针build-pack推送到heroku服务器https://github.com/stephanmelzer/heroku-buildpack-nodejs-grunt-compass
直到最近才开始工作,我不确定heroku方面发生了什么,它已经不再工作了,并且给了我这个错误:
bash: /app/.gem/ruby/1.9.1/bin/compass: /app/vendor/ruby-1.9.2/bin/ruby: bad interpreter: No such file or directory
我不确定他们改变了红宝石版本或其他什么后发生了什么
有人知道可能是什么问题和修复。
我使用Cedar堆栈,运行节点
答案 0 :(得分:2)
我想通过更多解释添加到已接受的答案,因为我有完全相同的问题,我相信大多数人都需要取消设置旧的buildpack,如下所示:
首先取消设置旧的buildpack并指向buildpack-multi:
heroku config:unset BUILDPACK_URL
heroku config:add BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git
Buildpack multi要求您添加自己的.buildpacks文件。这个配置是我最终成功使用的:
cat .buildpacks
https://github.com/heroku/heroku-buildpack-nodejs.git
https://github.com/heroku/heroku-buildpack-ruby.git
这是我的Gemfile仅提取指南针:
cat Gemfile
source 'https://rubygems.org'
gem 'compass'
现在你需要这样做:
bundle install
将添加Gemfile.lock
将所有内容提交给git并推送回heroku。这将启动您的新的多buildpack配置,并希望让您恢复运行。您应该看到nodejs和ruby buildpacks按照上述配置顺序下载。
免责声明:这可能是时间敏感的材料,因为heroku可能会在接下来的几个月里改变一些东西。
答案 1 :(得分:0)
嗯,我错了。在我们的例子中,由于一些糟糕的SASS,compass:dist
任务失败了。这最终导致了这个错误。在我的霰弹枪修复方法中,我编辑了Gruntfile heroku任务:
grunt.registerTask('heroku', function () {
grunt.log.warn('The `heroku` task has been deprecated. Use `grunt build` to build for deployment.');
grunt.task.run(['compass:dist']);
});
当这部署到heroku时,我注意到了错误。
我也换了buildpacks。我现在正在使用this buildpack这似乎工作正常。对不起,有点混乱,但希望有所帮助。
不是真正的答案,但因为我还没有发表评论......
也看到了这个错误。我认为它与我们正在使用的heroku-node-compass buildpack中的this line有关。
我尝试将ruby: 2.0.0
添加到Gemfile
,但这并没有什么区别。
答案 2 :(得分:0)
我最终使用“buildpack-multi”
小细节:
使用buildpack-multi在Heroku Cedar上运行Node,否则它会将服务器检测为Ruby堆栈(如果我没弄错的话)。
拥有Node和Ruby multipack允许我使用these instructions从Ruby Gem安装Compass。
答案 3 :(得分:0)
我无法让多个buildpacks与我的应用程序一起工作,但是我能够让位于https://github.com/stephanmelzer/heroku-buildpack-nodejs-grunt-compass的buildpack再次与Heroku一起工作:
在bin / compile中,我添加了
cp -r /app/vendor/ruby-1.9.2 $build_dir/vendor
在脚本检查了缓存之后,更新或安装了指南针,然后缓存了红宝石。
答案 4 :(得分:0)
这里的答案似乎已经过时了。
根据最新文档https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app,您可以从应用程序的命令行指定多个构建包:
heroku buildpacks:set heroku/ruby
heroku buildpacks:add heroku/nodejs
这将确保我们首先运行ruby。然后我们运行并启动节点应用程序。然后可以使用指南针。
只需添加一个Gemfile:
source 'https://rubygems.org'
gem 'compass'