我刚刚在heroku上启动了一个新的应用程序,我在正在运行的应用程序中使用了git clone
。我推动了一切,迁移了数据库,并重新启动了heroku。该应用程序仍然崩溃。
heroku logs
给了我:
2014-02-27T01:18:25.726069+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=********.herokuapp.com request_id=1ded5a34-7d01-440b-9fb4-0041fdc64715 fwd="75.149.130.1" dyno= connect= service= status=503 bytes=
code=H10
是“app或dyno崩溃”。如果有帮助,应用程序在Thin上运行。
如何重启动力枪?我该怎么做才能获得更多关于此的诊断信息?
编辑:(更多信息)
我跑了heroku restart thin
并立即运行heroku logs
,发现了这个:
ruby: symbol lookup error: /app/vendor/bundle/ruby/2.0.0/gems/eventmachine-1.0.0/lib/rubyeventmachine.so: undefined symbol: rb_enable_interrupt
该应用程序是基于ruby 1.9.2和rails 3.0.10构建的,所以我假设这里有某种版本问题,但我不明白。 This article提到Thin的相同问题,并建议不使用它。但我有一个与另一个heroku应用程序运行良好的完全相同的应用程序,并且我曾经使用的所有应用程序都很薄,我真的不知道为什么这不起作用。
编辑2:
虽然我的应用程序是使用ruby 1.9.2构建的,但heroku正试图使用ruby 2.0.0进行部署。如何告诉它使用1.9.2?设置或我的gem / config文件中的东西?
编辑3 :(我想我正在做些什么)
运行ruby -v
会产生1.9.2
运行`heroku run“ruby -v”产生2.0.0
This article表示可以在gemfile中声明它。我有一种感觉,这将解决我的问题。
答案 0 :(得分:0)
Heroku ruby buildpack将安装Gemfile中指定的ruby版本。 Ruby 2.0.0是当前的默认ruby。
要将Ruby 1.9.2配置为应用程序所需的版本,请将以下内容添加到Gemfile的顶部:
ruby '1.9.2'