rails-tutorial2週目&開発は、Docker+rails5の環境でやる事に致しました。
そんな中で、ここは気をつけるべきというのを、自分の備忘録も兼ねて書くことにしようと思います。(もし、間違った認識等があれば初学者であるため強めに指摘いただけるとすごく嬉しいです)
##そもそもDocker環境では”ただの”railsコマンドは使えない
多分知ってる人からしたら当たり前だし、「何言ってんだこいつ?」状態だと思うのですが、これがわからなくてかなりハマりました。
Docker上で構築したrails環境では、ただのrailsコマンドは使えません。
例えば、新しくコントローラーを作成する際なんかは、
rails g controller nanigasi(コントローラー名) nanigasi(アクション名)
みたいな作り方すると思うのですが、このコマンドDockerで構築したrails環境でそのままターミナルで打ってもエラーが出てしまいます。
基本的にDocker環境でrailsコマンドを叩く時は、
docker-compose run web rails g controller nanigasi(コントローラー名) nanigasi(アクション名)
のように、railsコマンドを叩く前に、docker-compose run web ~
が必要になります。
もちろんですが、テストを走らせる時もdocker-compose run web rails test
となります。
##ではGemfileを編集するときは?
これも先ほどと同じです。
任意のGemfileを編集して、
docker-compose run web bundle install
コードを実行し、アプデをしろと怒られたら、
docker-compose run web bundle update
になります。そして再びインストール致します。
そして忘れていけないのは、gemを編集したら必ずコンテナを再buildする必要があります。
なのでこちらのコード。
docker-compose up --build
必ずこの手順を踏んで、実行しましょう。