Docker開発環境でdeviseの日本語ファイルを作成しようとしたところ発生したエラーの解決方法について


開発環境にDockerを導入している状態で、deviseを導入し、エラーメッセージなどを日本語で表示させるために日本語ファイルを作成しようと下記コマンドを実行したところ

$ docker-compose run web rails g devise:views:locale ja

すると下記のようなエラーが発生した。

Starting aoo_db_1 ... done
Could not find devise-i18n-1.9.2 in any of the sources
Run `bundle install` to install missing gems.

devise-i18n-1.9.2というGemが見つからないから、 bundle installを実行してGemを入れてねってことらしい

けど、Gemはしっかりと書いてあるし、bundle installも問題なく通るし、なんだこれ??なっていたが、調べてみるとどうやらキャッシュで bundle install が実行されない場合があるらしい。

解決方法としては下記のコマンドを実行すればOK

$ docker-compose build --no-cache

上記を実行したあとに

$ docker-compose run web rails g devise:views:locale ja

を実行すると

Creating network "app_default" with the default driver
Creating app_db_1 ... done
      create  config/locales/devise.views.ja.yml

といった感じに無事に日本語ファイルが作成された。

原因としてはサーバーを起動している状態でコマンドを打ったせいで、bundle installがうまく行かずに、Gemが正しくインストールされずに起こったっぽいので次回からはしっかりとサーバーを止めてから、bundle installを行うように気をつけたい。

Gemしっかりと入ってるはずなのになぜ!!?と少し焦ったが、調べてみると対策がすぐに見つかったので助かった。先人様様ですわね!!先人しか勝たん!!!

参考:https://fuqda.hatenablog.com/entry/2019/03/21/204118