概要
Railsチュートリアルも完了し、さて次は何をしようかと思案していたところ、
『Everyday Rails - RSpecによるRailsテスト入門』がゴールデンウィークセール中でしたので、これはと思い購入。
Everyday Rails… Aaron Sumner 著 et al. [Leanpub PDF/iPad/Kindle]
Railsチュートリアルに引きづつき、Dockerで環境を構築。
環境
PC:MacBookPro
docker for mac
環境構築
RSpec用のコンテナ準備
まずは、ターミナルで適当なフォルダを作成して、カレントディレクトリに移動。
mkdir myRspec && cd $_
続いてDockerコンテナを起動。
$ docker container run -it --name myRspec -p 3000:3000 -v `pwd`:/myapp ruby:2.4.6 /bin/bash
内容について軽く補足
* -it
: 標準入出力を繋げる。要するにターミナルで起動したコンテナを操作できるようにする。
* --name
: 名前付け。あるとわかりやすい。
* -p 3000:3000
: ホストとなるOSとDockerイメージのポートを繋げる。
* -v `pwd`:/myapp
: ホストのカレントディレクトリと、Dockerのmyappディレクトリを同期させる。
(同時にコンテナ内のルート直下にmyappディレクトリも作成される)
* ruby:2.4.6
: 引っ張ってくるDocker Image。サンプルアプリはRuby2.4なので今回はタグで2.4.6を指定。
* /bin/bash
:実行するコマンド。
ターミナルの最初の部分がUSERnoMacBook-Pro:~
からroot@:(12文字の英数字)
に変わっていたら成功。
そのまま、次のコマンドを実行。
$ apt update
$ apt install -y nodejs
Githubからサンプルアプリケーションをクローン
サンプルアプリケーションはGitHubにあります。
https://github.com/everydayrails/everydayrails-rspec-2017
クローンの手順はやったことがなかったので、ググりながら進めます。
$ git clone https://github.com/everydayrails/everydayrails-rspec-2017.git
everydayrails-rspec-2017
というディレクトが作成され、コードが取得できました。
まずはcd everydayrails-rspec-2017/
でディレクトリに移動。
この状態では、Masterブランチのみ取得している状態です。
ここから2章開始の状態にするために、本文に従ってブランチを切り替えます。
$ git checkout -b my-02-setup origin/01-untested
これで、ソースコードの準備が整いました。先述の通り、ホストの myRspecディレクトリはmyappディレクトリと同期しています。
ホストPCのmyRspec下のeverydayrails-rspec-2017
をVSCodeでひらけば、そのまま開発環境として利用できます。
ただし、Railsコマンドの実行などは、Dockerコンテナを動かしているターミナルからでないと使えません。
仕上げ
ターミナルで最後の仕上げです。
$ bundle install
$ bin/rails db:create:all
$ bin/rails db:migrate RAILS_ENV=development
これで準備完了のはずです。ターミナルにrails s
と入力し、ブラウザからhttp://localhost:3000/
に接続してみます。
問題なく動いているようですね。それでは勉強開始!