我希望在我的 Rack 和 Sinatra 应用程序中设置侦听端口,如果使用 PORT 环境变量(否则设置为默认值(。
我想我也许可以做类似的事情,但我不确定这是否是正确的方法。
class ApplicationController < Sinatra::Base
set :port, ENV['PORT'] || 3000
get '/' do
'Hello, World!'
end
end
这似乎不起作用,至少在rackup
命令中不起作用。正确的方法是什么?
rackup
-p PORT
参数。
你可以做:
rackup -p $PORT
在config.ru
中,您还可以在第一行的注释中定义选项:
# -p 9090
我不确定这是否可以处理$PORT
.
如果你看一下rackup
的源代码,它非常简单:
#!/usr/bin/env ruby
# frozen_string_literal: true
require "rack"
Rack::Server.start
这就是整个文件。
Rack::Server.start
接受选项哈希作为参数,其中一个选项是 :Port
。
你可以自己做start.sh
说:
#!/usr/bin/env ruby
# frozen_string_literal: true
require "rack"
Rack::Server.start(Port: ENV['PORT'] || 3000)