Railsチュートリアルの環境をサクッと作る
Railsチュートリアルを見ているとCloud9を利用しているが、Dockerでサクッと環境を作りたいと思った。調べているとDockerでRailsを動かすという記事はたくさん見つかるが、DBのコンテナをdocker-composeとかで管理していたり、簡単にとりあえずRailsを試してみたい時に参考にする記事があまりなかった。Dockerfileも利用せずにruby:2.4.0をベースにRailsを動かしてみる。
手順
環境: macOS Sierra
-
まずDockerをインストールする。Docker for Macで良い。
-
作業ディレクトリに移動する
- ここでは
/path/to/sample
とする -
cd /path/to/sample
としておく
- ここでは
-
rubyのイメージを元にDockerのコンテナを作って、そこで
rails new
する-
docker run -it -p 3000:3000 -v "$PWD":/usr/src ruby:2.4.0 /bin/bash
- これで新しく作成されたコンテナに入る。以下2~5はコンテナ内で実行する。
-
-it
と/bin/bash
をつけるとコンテナ内に入る。 -
-p 3000:3000
でポート3000を指定。 -
-v "$PWD":/usr/src
でローカルのカレントディレクトリとコンテナの/usr/src
が同期される。テキストエディタでローカルでファイルをいじるとブラウザに反映されるようになる。 -
ruby:2.4.0
でベースイメージを指定。
cd /usr/src
gem install bundler
gem install rails
-
rails new sampleAPP
(sampleAPPのところは好きなアプリ名で良い)
-
-
Gemfileを修正してサーバを起動する
- 好きなテキストエディタで先程作成されたGemfileを開き、
therubyracer
の行のコメントアウトをはずす - 再びコンテナ内でsampleAPPにて
bundle install
- そのまま
rails s
- 好きなテキストエディタで先程作成されたGemfileを開き、
確認する
-
localhost:3000
で確認する
備考
コンテナからはexit
で抜けることができる。
そうすると中に入る時は再びコンテナを起動してログインする必要がある。
docker ps -a
でCONTAINER ID(HOGEHOGE
だとする)を確認してから、docker start HOGEHOGE
としてdocker exec -it HOGEHOGE /bin/bash
で入れる。
bundle install
とかのコマンドは中に入って実行すればいい。
実際に運用する時にはDockerfile書いて、docker-composeで管理するべきだが、試しにRailsを動かしてみたい時にはこれで十分だと思う。