【发布时间】:2014-03-30 05:14:19
【问题描述】:
我刚刚在 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 是“应用程序或测功机崩溃”。如果有帮助,该应用程序正在 Thin 上运行。
如何重新启动 dynos?我该怎么做才能获得更多关于此的诊断信息?
编辑:(更多信息)
我运行 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 中声明。我觉得这会解决我的问题。
【问题讨论】:
标签: heroku