2021年7月8日木曜日

Rack で起動するポートを指定する方法

Rack で起動するポートを指定する方法

概要

引数やコメント、Ruby スクリプト内で設定することができます

環境

  • macOS 11.4
  • Ruby 3.0.1p64
  • Sinatra 2.1.0

サンプルアプリ

以下のアプリを使ってい起動するポートをいろいろと変更してみます デフォルトだと 9292 ポートで起動します

app.rb

require 'sinatra/base'

class WebApp < Sinatra::Application  
  get '/' do
    'ok'
  end
end

config.ru

require './app'

run WebApp

引数で指定

起動する際の引数で指定できます

コメントで指定

現在は非推奨になっているようです 実行すると「Parsing options from the first comment line is deprecated!」が表示されます

#\ -p 1111
require './app'

run WebApp

スクリプト内で指定

run する際に Rack::Handler から run をすることで起動時の引数として指定できます こうすることでスクリプト内の変数を使って起動ポートを指定することができます

require './app'

port = ENV["PORT"] || 1111
Rack::Handler::Thin.run(WebApp, Port: port)

ただこの場合アプリ停止時に「to_app: missing run or map statement (RuntimeError)」が表示されてしまいます

0 件のコメント:

コメントを投稿