gpt4 book ai didi

ruby - 在 heroku cedar 堆栈上部署 sinatra 应用程序(使用 config.ru)

转载 作者:数据小太阳 更新时间:2023-10-29 06:53:53 24 4
gpt4 key购买 nike

我正在尝试重构我的 sinatra 代码以将我的主文件分成单独的文件,使用来自 this response 的一些技巧,我在部署到 heroku 时遇到了麻烦。

以前我没有config.ru 文件,只是使用了我的Procfile,它是:

web: bundle exec ruby web.rb -p $PORT

根据 this article .

从重构开始,我现在将 Procfile 更改为

web: bundle exec thin -R config.ru start -p $PORT

我的config.ru 文件是

root = ::File.dirname(__FILE__)
require ::File.join( root, 'web' )
run MyApp.new

我的 web.rb 文件包含在一个类定义中

class MyApp < Sinatra::Application
# ...
end

这适用于我的本地开发计算机,但是当我部署到 heroku 时,我得到了

2011-12-01T11:21:54+00:00 app[web.1]: bundler: command not found: thin
2011-12-01T11:21:54+00:00 app[web.1]: Install missing gem executables with `bundle install`
2011-12-01T11:21:56+00:00 heroku[web.1]: State changed from starting to crashed
2011-12-01T11:22:01+00:00 heroku[router]: Error H10 (App crashed) -> GET [my app].herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
2011-12-01T11:22:02+00:00 heroku[router]: Error H10 (App crashed) -> GET [my app].herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes=

heroku 上没有安装 thin 吗?或者是否有其他方法可以通过更改在 heroku 上运行我的应用程序?

最佳答案

我必须更新我的 Procfile,因为 RACK_ENV 没有传递到 heroku 环境中。 Procfile 变成了:

web: bundle exec thin -R config.ru start -p $PORT -e $RACK_ENV

关于ruby - 在 heroku cedar 堆栈上部署 sinatra 应用程序(使用 config.ru),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8340943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com