アカハヤの技術ブログ

クズと天才は紙一重 twitter:@akahaya719

Capistranoでデプロイした時にunicornが再起動しなかった話

capistranoを使用し、ec2にデプロイした時に

Bundler::GemfileNotFound

というエラーが出てしまい、unicornの再起動がうまくいかない時の対処法。

 

Gemfileは存在しているのだが、

Gemfile読み取り時に過去のバージョンのディレクトリのGemfileを見ようとし

そのディレクトリはすでに存在しないので、エラーが起きてしまう。

 

config/unicorn/production.rbまたはstaging.rbに以下を記述

before_exec do |server|
 ENV['BUNDLE_GEMFILE'] = "ec2内のGemfileまでのパス"
end

 

すでにこの問題が起きてしまっている場合は、

再度デプロイしても失敗してしまうので、

一度、unicornを手動で停止または、再起動しなくてはならない。