前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

ホストPCからboot2docker上のSinatraにアクセスする

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使い慣れてる人には常識だろうけど。