Dockerのドキュメントを読んでいるとSinatraの例が出てくるが、実際に動作させてアクセスを確認しようとした際に少し嵌ったのでメモ。
Mac上でDockerを使う場合、boot2dockerを使う事になると思うが、その場合ポートの転送を行う必要がある。
アクセス方法は下記に書いてあるので割愛
http://docs.docker.com/installation/mac/#access-container-ports
上記の例ではnginxなのでうまくいく。
ただしこれがSinatraの場合、デフォルトではローカルホストからのアクセスしか許可されないため、アクセスできない。追加で以下の設定を書いておく必要がある。
set :bind, '0.0.0.0'
最小構成例
# myapp.rb require 'sinatra' set :bind, '0.0.0.0' get '/' do 'Hello world!' end
この場合すべてのインターフェースからのアクセスを許可することになる。
Sinatra使い慣れてる人には常識だろうけど。