Ruby on rails Ruby机架更换端口
我有一个Ruby web API,使用Rack,Ruby on rails Ruby机架更换端口,ruby-on-rails,ruby,sinatra,rack,Ruby On Rails,Ruby,Sinatra,Rack,我有一个Ruby web API,使用Rack,config.ru文件如下所示: #\ -p 8080 -o 0 run App::API bundle exec rackup -p 8000 它工作得很好,但如果我想使用rackup参数更改web服务器的端口,它将无法工作。config.ru中的第一行参数似乎覆盖了命令行参数。我在机架文档中找不到解释这种行为的任何内容 问题是,如果我像这样执行Rack server: #\ -p 8080 -o 0 run App::API bund
config.ru
文件如下所示:
#\ -p 8080 -o 0
run App::API
bundle exec rackup -p 8000
它工作得很好,但如果我想使用rackup
参数更改web服务器的端口,它将无法工作。config.ru
中的第一行参数似乎覆盖了命令行参数。我在机架文档中找不到解释这种行为的任何内容
问题是,如果我像这样执行Rack server:
#\ -p 8080 -o 0
run App::API
bundle exec rackup -p 8000
我希望它绑定到端口
8000
,但它仍然绑定到端口8080
。如何在不更改config.ru
文件的情况下更改端口?因此,我决定提交一个拉入请求,请求Rack来修复这种奇怪的行为。在阅读代码时,我意识到一些非常奇怪的事情,代码应该按照我的预期工作:|
它支持命令行参数而不是配置文件(config.ru
)!
深入研究代码提交发现,这些更改尚未合并到任何稳定的版本中(1.6.4
)。实际上是2.0.0.alpha版本。这显然还没有准备好生产
以下是提交:
所以答案是:在1.x版本中这是不可能的,我要么更改
config.ru
,要么忘记这一点:(你说得对,第一行改变了它。如果你想在保留默认值的同时定制东西,为什么不使用另一个没有第一行的.ru
文件,并使用该文件调用rackup?Hoang Phan,说得对,这很有意义。也许我应该明确地说,在我的问题中,我不想触摸或更改pro一点也不。它实际上是在Docker图像中打包的,所以我想在启动应用程序时在不改变原始图像的情况下覆盖设置。但看起来我没有太多选择:(顺便说一句,这里有一个反对票。你介意告诉我为什么你反对吗?