質問

CAPで展開し、USR2をユニコーンプロセスに送信するスクリプトを使用してリロードしますが、通常は機能しますが、たまに失敗します。ユニコーンのログを見ると、それが古いリリースディレクトリに存在しなくなったGemfileを探していることがわかります。

例外 :

/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/definition.rb:14:in `build': /var/www/railsapps/inventory/releases/20111128233407/Gemfile not found (Bundler::GemfileNotFound)

それが現在のリリースではなく、その後削除された古いリリースであることを明確にするために。

それが正しく動作するように思われる - つまり、新しいコードをピックアップする - だから、古いリリースについて言及して何らかの形で立ち往生しているとは思わない。

何か案は?

役に立ちましたか?

解決

を設定する必要があります BUNDLE_GEMFILE 環境変数サーバーを開始する前に、 current/Gemfile.

他のヒント

unicorn.rbにBefore_execブロックを追加します

current_path = "/var/www/html/my project/current"

before_exec do |server|
  ENV['BUNDLE_GEMFILE'] = "#{current_path}/Gemfile"
end

詳細については、こちらをご覧ください http://blog.willj.net/2011/08/02/fixing-the-gemfile-not-fundlergemfileenotfound-error/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top