私はcapistranoを使用して、Railsアプリケーションを本番環境にデプロイしています。すべてが機能しているように見え、capistranoはエラーを報告しませんが、アプリケーションは次のエラーメッセージで起動できません
Ruby(Rack)アプリケーションを起動できませんでした どのソースにもactivemodel-3.2.0が見つかりませんでした(Bundler :: GemNotFound)
バンドルされているgemを調べると、正しいバージョンのgemが共有フォルダーにありますが、乗客はそれらを使用していないようです。capdeployからの要約出力は次のとおりです
* executing "cd /opt/geonovo/retail/releases/20120628125205 && \
bundle install --gemfile /opt/geonovo/retail/releases/20120628125205/Gemfile \
--path /opt/geonovo/retail/shared/bundle --deployment \
--without development test"
servers: ["rt-devrails01"]
[rt-devrails01] executing command
** [out :: rt-devrails01] Fetching source index for http://rubygems.org/
** [out :: rt-devrails01] Using activesupport (3.2.0)
** [out :: rt-devrails01]
** [out :: rt-devrails01] Using builder (3.0.0)
** [out :: rt-devrails01]
** [out :: rt-devrails01] Installing activemodel (3.2.0)
...
...
* [out :: rt-devrails01]
** [out :: rt-devrails01] Your bundle is complete!
It was installed into /opt/geonovo/retail/shared/bundle
command finished in 47529ms
本番サーバーで実行gem list
すると、activemodel 3.2.0 gemが存在することは示されませんが、共有ディレクトリ/opt/geonovo/retail/shared/bundle/ruby/1.9.1/gems/にはactivemodel-3.2.0のエントリが含まれています。
本番サーバーの/bundle/configファイルには次のものが含まれています
--- BUNDLE_FROZEN: "1" BUNDLE_PATH:/ opt / geonovo / Retail / shared / bundle BUNDLE_DISABLE_SHARED_GEMS: "1" BUNDLE_WITHOUT:開発:テスト
bundle check
本番サーバーで実行すると、次のように表示されます
次の宝石がありません * activemodel(3.2.0) *アクションパック(3.2.0) * actionmailer(3.2.0) * activerecord(3.2.0) * activeresource(3.2.0) *レールティー(3.2.0) *レール(3.2.0) 不足しているgemを`bundleinstall`でインストールします
おそらくを使用してgemをインストールできbundle install
ますが、可能であれば、capistrano内でデプロイを実行したいと思います。
Gemfileの先頭には、次の行が含まれています
ソース'http://rubygems.org' gem'rails'、'> = 3.2.0'