LoginSignup
0
1

More than 1 year has passed since last update.

【Docker 】app_1 | Could not find (gem.lock名) エラーの解決方法

Posted at

概要

docker × railsでdokcker compose upした際に「Could not find (gem.lock名)〜」というエラーが発生した。
bundle install 時にgemのインストールが失敗しているとのこと。

別の人の環境では動いたので、記述は間違ってない。
dockerのvolumeを削除してみる。

環境

・MacOS Apple M1 バージョン11.4
・Docker 20.10.7
・Ruby 2.5.9
・Rails 5.2.6

volumeとは

ボリュームとは、データを永続化できる場所のこと。
「名前付きボリューム」「匿名ボリューム」があり、名前付きボリュームの場合は Docker ホスト内で名前解決できるため、アクセスしやすい。
匿名ボリュームは適当にハッシュ値が振られる。
他のプロセスからはさわれないので安全。基本はこれを使うのがよい。

dockerのvolumeの中身を見る

% docker volume ls
DRIVER    VOLUME NAME
local     3af7cc07ae15f717d55dcea4dc356c19247e3d72a4f347b41eca2050578569bf
local     02abf414f65facb0cc4538c873818568de2134dec2bcdcb9cbec13f3d017e8a3
local     5c6f637deeb7377eb7b4f1c9f839bc4510037089a778d813ddb6bcdd0d6fd856
local     4ec65427bac8ab1ca050e4e32819755534d99ae7aa587c0c0c661269751519b8
local     8ff3d7837fab59bcf5ad35e2d6957530832476256acafc4cd1823ad7b079323e
local     9674a4ab5a4ba4389a15f6c9cbcd2a9410c68d0e7af9f863b21e721787beae53
local     8413aaeaef3255be669cf5a34db05cdaeae94f770e1875b95232b8700b7a0e38
local     be4abc0053855dd62de3adb3e5304e7f0a81af9b020e64515b98951fc29dc215
local     ce84c2d173df0b00b5f59179b2d37c4c92b14ed1e79f4da6f6ced2aab5a39548
local     db2896426db9f403582487693a7f844940f99ce1e9a8732b07087a4b776b0a27
local     fbe080cb2f3b6d923f80d1ce29171c2979f5a5df9df5b38d77b13f50fe9d8f96
local     ffa7b0f82a588661c0109b39a1b82015359a42549f6cc236276bbb812c50072b
local     gaa48f5287da42614b2259ab6310c8c5f2c438a318ad29a272881146bcd46479
local     gb9a6e857ca8e828ec80a872c9e934323c0504ac7ac18b8f8d848a2ac8eae5d2
local     gc5f79f016bad0e1d33992ac65049c1cc2fddc70e1dc6c192ae7e37ccac48b79
local     g9b4706c13fe06e327fe2b5b8b121a0c110ecdc49304196737f5725f14c2aa99
local     g76d2e4d4fbb331251b380c67fc9581d275305f66ce979cffc8d176dbce23f18
local     h357cd3c0f3dd302ddd66f7d898e8eb54715cb4f8b864f37ee56dc80deaeb2f3
local     (ファイル名)_bundle
local     (ファイル名)_node_modules
local     (ファイル名)_rails_cache

このようにvolumeの中身が見れました。

自身の開いているファイルのvolumeをそれぞれ削除していきます。

それぞれvolumeを削除する

docker-compose.yml
volumes:
  rails_cache:
  node_modules:
  bundle:

volumeの中身とdocker-compose.ymlを見たときにそれぞれ同じものが3つあるので、それぞれ削除していきます。

% docker volume rm (ファイル名)_bundle
% docker volume rm (ファイル名)_node_modules
% docker volume rm (ファイル名)_rails_cache

これでvolumeをそれぞれ削除できました。

Buildする

buildすることでvolumeは再度新しく生成されるため、再度buildします。

% docker-compose build 

upする

% docker-compose up

これで直りました。

他にもエラーがあれば都度更新します。

参考文献

公式ドキュメント
Docker、ボリューム(Volume)について真面目に調べた

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1