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/srcgem install bundlergem 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を動かしてみたい時にはこれで十分だと思う。
