0

カピストラーノを使用してサーバーにデプロイし、最後のステップとして bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile を実行しています。問題は、cap deploy からこの時点に到達すると、次のエラーが発生することです。

/usr/local/rvm/gems/ruby-1.9.3-p194/gems/bundler-1.1.4/lib/bundler/spec_set.rb:90:in `block in materialize': プラットフォーム 0.4.0 が見つかりませんでしたいずれかのソース (Bundler::GemNotFound)

Platform-0.4.0 は実際にはサーバー上にあります。そして、サーバーに入ってこの正確なコマンドを実行すると、すべてうまくいきます。

私のサーバーに関するいくつかの事実:RVMを使用していますが、上記のスタックトレースが示唆するように、それはcapの問題ではないようです。もう 1 つの興味深い事実は、このサーバーが最初に私が作成したカスタム スクリプトを使用して作成されたことです。このスクリプトは、アーカイブされたバージョンの git リポジトリをダウンロードし、デプロイ時に cap が行うことを手動で実行します。誰かが尋ねた場合、私がこれを行っている理由は、AWS AutoScaling による自動化のためです。通常の deploy:setup (AWS スクリプトを使用しない) を実行すると、デプロイで問題なく動作します。しかし、gem リストは同じであり、サイトはどちらの方法でもまったく同じように機能します。キャップが展開するだけのもの

何かご意見は?

4

1 に答える 1

0

私は自分が間違っていることを理解しました。カスタムAMIスクリプトでは、capistranoが通常名前を付ける方法でタイムスタンプにする必要があるときに、初期リリースフォルダーに「first」という名前を付けていました。それはその後の展開で物事を台無しにしました。

于 2012-06-21T00:00:38.997 に答える