なんだよこのレアケース!っていうやつ。
今回ハマったケース
- bundle exec cap {STAGE} deployする
- あるGemがインストールできなくて、デプロイ先のbundle installが失敗しまくってた
- Gemfile.lockをアップデートして問題解消したのを確認した
- git pushして、問題のプロジェクトのGemfile.lockを更新
- git pullして更新落ちてきたのを見届けて、再度deployを投げると何故か2.と同じエラーが出る
- Gemfile.lockを見ると更新されてない
解決方法
deploy先の/path/to/app/以下のディレクトリのうち、Capistranoが自動作成するディレクトリを全部消した。 (多分/path/to/app/repo/消せば解決する気はする。)
なぜ起こったのか
コレガワカラナイ。 中途半端にタスクが消化されて、/path/to/app/以下に残ってた情報が悪さしてたのかもしれん。 ディレクトリ消すときに、sharedとかreleaseも消しちゃうと問題になるので、repo消すだけでも大丈夫かもしんない。