在 Rack/Sinatra 中使用 PORT 环境变量
Use PORT environment variable in Rack/Sinatra
我想在我的 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)
我想在我的 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)