📌

SinatraをDocker上で動かす方法

に公開

これは何?

SinatraをDocker上で動かす方法を記載します。

準備するファイル

Dockerfile
FROM ruby:3.4-slim

RUN apt-get update -qq && apt-get install -y build-essential

COPY app.rb .

RUN gem install rackup
RUN gem install puma
RUN gem install sinatra

EXPOSE 4567

CMD ["ruby", "app.rb"]

以下は、Sinatra関連のファイルになります。

app.rb
require 'sinatra'

set :bind, '0.0.0.0'

get '/' do
  '妻がお出かけ日和だと言う。'
end

実行するコマンド

$ docker build -t app . // Dockerイメージを作成します。
$ docker run -p 4567:4567 --name sinatra_app app // Dockerイメージを実行します。

http://127.0.0.1:4567/ にアクセスすると意図通りのレスポンスが返ってきました。

感想

今回は、コンテナの外からアクセスするために0.0.0.0に対してバインドする必要がありました。ほとんどコンテナで開発した経験がなかったために127.0.0.1と指定していて問題の解消に少し手間取りました。

Discussion