Docker で Ruby on Rails の環境を作る方法:unicorn + nginx

Docker で Ruby on Rails の環境を作成する方法について紹介します。サーバーは、unicorn + nginx を採用します。

なお既に Docker はインストール済として説明していくので、インストールが済んでない方はまず Docker のインストールを行ってください。

Dockerのコンテナ立ち上げ

イメージの取得

今回は、Ruby on Rails 4.2.6の公式イメージを取得します。

Dockerfile を使う方法もありますが、今回は docker pull でイメージを取得してからコンテナを作成する方法をとります。

docker images で、取得したイメージを確認します。

コンテナの作成

次に、取得したイメージからコンテナを作成します。-p オプションでポート80をコンテナ側のポート80にポートフォワーディングして、名前は myproject としています。

これでコンテナが作成されたので、以下よりコンテナ内での作業となります。

ちなみこのイメージの OS は、Debian 8.4 が使われています。

Ruby on Railsの環境作成

必要なものをインストール

apt-get をアップデートしてから vim と nginx をインストールします。

nginx を起動しておきます。

GemとBundlerのインストール時に、--no-rdoc --no-ri オプションを指定しなくて良いように .gemrc ファイルを作成し、以下のように追加し保存します。これは、オプションなのでスキップしても大丈夫です。

Ruby on Railsのプロジェクト作成

任意のディレクトリに移動し、rails new でプロジェクトを作成します。今回は、myproject という名前にします。

myproject に移動します。

unicorn + nginx の環境設定

unicornの設定

Gemfile の unicorn の部分のコメントアウト#を外します。

unicorn をインストールします。

次に、unicorn の設定ファイル unicorn.rb を作成します。

uniconrn.rb の内容は以下のようになります。ディレクトリは必要に応じて変更してください。

/var/www/myproject/config/unicorn.rb

nginxの設定

nginx の設定ファイルを作成します。今回は unicorn.conf という名前で作成します。

server や root などで指定しているディレクトリは、 unicorn.rb と合わせてください。

/etc/nginx/conf.d/unicorn.conf

nginx -t で設定ファイルのシンタックスチェックを行ってから、nginx を再起動します。

/var/www/myproject で、unicorn を起動するコマンドを実行します。

ブラウザで、http://localhost にアクセスすると、以下のような画面が表示されます。

docker-rails

これでセットアップが完了しました。