尝试将 Heroku cedar 从 Ruby 1.9.2 移植到 Ruby 1.9.3 失败:
2012-07-25T22:09:48+00:00 heroku[slugc]: Slug compilation started
2012-07-25T22:11:23+00:00 heroku[api]: Deploy abdaf18 by luca.soave@gmail.com
2012-07-25T22:11:23+00:00 heroku[api]: Release v244 created by luca.soave@gmail.com
2012-07-25T22:11:23+00:00 heroku[web.1]: State changed from up to starting
2012-07-25T22:11:24+00:00 heroku[deployhooks]: Notified New Relic about the deploy
2012-07-25T22:11:24+00:00 heroku[slugc]: Slug compilation finished
2012-07-25T22:11:26+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2012-07-25T22:11:27+00:00 app[web.1]: Exiting
2012-07-25T22:11:28+00:00 heroku[web.1]: Process exited with status 0
2012-07-25T22:11:28+00:00 heroku[web.1]: Starting process with command `bundle exec rails server thin -p 12558`
2012-07-25T22:11:29+00:00 app[web.1]: Your Ruby version is 1.9.2, but your Gemfile specified 1.9.3
2012-07-25T22:11:30+00:00 heroku[web.1]: Process exited with status 18
2012-07-25T22:11:30+00:00 heroku[web.1]: State changed from starting to crashed
2012-07-25T22:11:30+00:00 heroku[web.1]: State changed from crashed to starting
2012-07-25T22:11:36+00:00 heroku[web.1]: Starting process with command `bundle exec rails server thin -p 36407`
2012-07-25T22:11:37+00:00 app[web.1]: Your Ruby version is 1.9.2, but your Gemfile specified 1.9.3
2012-07-25T22:11:39+00:00 heroku[web.1]: Process exited with status 18
2012-07-25T22:11:39+00:00 heroku[web.1]: State changed from starting to crashed
2012-07-25T22:11:40+00:00 heroku[router]: Error H10 (App crashed) -> GET gitwatcher.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
2012-07-25T22:11:41+00:00 heroku[router]: Error H10 (App crashed) -> GET gitwatcher.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes=
2012-07-25T22:11:41+00:00 heroku[router]: Error H10 (App crashed) -> GET gitwatcher.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes=
更新
我跟着Heroku docs
有
ruby '1.9.3'
进入我的 Gemfile 和bundler --pre
:
lsoave@ubuntu:~/rails/github/gitwatcher$ gem list bundler
*** LOCAL GEMS ***
bundler (1.2.0.pre.1, 1.1.4)
lsoave@ubuntu:~/rails/github/gitwatcher$
更新
我遵循了heroku的建议:If absent or not the first entry, add bin: to the config with heroku config:add.
但它不起作用:
lsoave@ubuntu:~/rails/github/gitwatcher$ heroku config -s | grep PATH
GEM_PATH=vendor/bundle/ruby/1.9.1
PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin
lsoave@ubuntu:~/rails/github/gitwatcher$
...这很奇怪,因为在控制台中运行 ruby -v 会返回正确的版本:
lsoave@ubuntu:~/rails/github/gitwatcher$ heroku run:detached "ruby -v"
Running `ruby -v` detached... up, run.1
Use `heroku logs -p run.1` to view the output.
lsoave@ubuntu:~/rails/github/gitwatcher$ heroku logs -p run.1
2012-07-25T22:51:57+00:00 heroku[run.1]: Starting process with command `ruby -v`
2012-07-25T22:51:57+00:00 app[run.1]: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
2012-07-25T22:51:57+00:00 heroku[run.1]: State changed from starting to complete
2012-07-25T22:51:58+00:00 heroku[run.1]: Process exited with status 0
lsoave@ubuntu:~/rails/github/gitwatcher$
更新
...而且我做了:
heroku config:add RUBY_VERSION=ruby-1.9.3-p194
heroku config:add PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin
recompile ( change + git commit + git push heroku +master )
但没有,以这种方式重新编译后崩溃:
2012-07-25T23:18:47+00:00 heroku[router]: Error H10 (App crashed) -> GET gitwatcher.com/ dyno= queue= wait= service= status=503 bytes=
2012-07-25T23:18:47+00:00 heroku[nginx]: 93.34.152.105 - - [25/Jul/2012:23:18:47 +0000] "GET / HTTP/1.1" 503 601 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0.1" gitwatcher.com
更新
打开 Heroku 调用请求 #58410