7

私は数時間を費やしましたが、この問題を解決することができません。

を使用してローカルRailsアプリを本番サーバーにデプロイしようとするとcapistrano、次のエラーが発生します。

The --deployment flag requires a Gemfile.lock. Please make sure you have checked your Gemfile.lock into version control before deploying.

これを解決する方法について何かアイデアはありますか?

私のRailsアプリケーションフォルダーは、Gitを使用してバージョン管理されています。ローカルのgitリポジトリをgithubにプッシュしましたが、Gemfile.lockはgithubにあります。したがって、バージョン管理下にあります。ただし、capistranoは同じエラーを出し続けます。

Deploy.rbファイル:https ://gist.github.com/brahmadpk/4748991

4

6 に答える 6

12

ファイルBUNDLE_FROZEN: "true"から削除して、再実行してください。.bundle/configbundle

于 2018-12-10T10:39:51.130 に答える
7

リリースフォルダにリリース以外のものがないことを確認してください。詳細については、バンドラーの問題に関するこのコメントを参照してください。

Capistrano Deployment Troubleというタイトルのこのブログ投稿では、同じ問題について説明しています。

コメントの議論からの結論を含めるために編集

deploy_toパラメータが絶対パスに設定されていません。したがってcapistrano、展開するフォルダーを見つけることができなかったため、このエラーメッセージが表示されました。

于 2013-02-10T09:22:53.773 に答える
4

私はこれを次のように解決します:

set :bundle_gemfile, "your_app_name/Gemfile"

deploy.rbで

于 2013-07-08T13:10:23.603 に答える
0

を実行してバージョン管理にbundle追加します。Gemfile.lock

于 2013-02-10T08:52:33.993 に答える
0

リリースフォルダにファイルやフォルダがないのに、同じ問題が発生しました。それはばかげた小さなことであることが判明しました。私のリポジトリのgemfile.lockファイルは何らかの理由で小文字でしたが、capistranoには大文字のGが付いたGemfile.lockが必要です。

これが私がそれを解決した方法です:

  1. gemfile.lockを削除します
  2. リポジトリからgemfile.lockを削除します(git rm ...)
  3. 走るbundle install
  4. 新しいGemfile.lockファイルをリポジトリに追加します。git add Gemfile.lock
  5. サーバーからフォルダを削除します(これが本当に必要かどうかはわかりませんが、とにかく実行しました)
  6. 配備
于 2013-06-19T10:35:23.983 に答える
-1

私はまったく同じ問題を抱えています。

私のreleasesフォルダーには何もありません(まったく-私のデプロイコールドはロールバックし続けます)。

私のgemfile.lockはSubversionにチェックインされています。

私は得る:

** [out :: localhost] The --deployment flag requires a Gemfile.lock. Please make sure you   have checked your Gemfile.lock into version control before deploying.

ロールバックを停止して、実行しようとしたときにリリースフォルダーがどのように表示されるかを確認する方法はありますか?

cd /var/qlarity/releases/20130222003607 && bundle install --gemfile /var/qlarity/releases/20130222003607/Gemfile --path /var/qlarity/shared/bundle --deployment --quiet --without development test

後で....

次のようにコードをコメントアウトすることで、ロールバックを防ぐことができることがわかりました。

gems\capistrano-2.14.1\lib\capistrano\recipes\deploy.rb

task :update_code, :except => { :no_release => true } do
  # on_rollback { run "rm -rf #{release_path}; true" }
  strategy.deploy!
  finalize_update
end

これにより、リリースフォルダーを調べることができ、Gemfile.lockが含まれていませんでした。Railsプロジェクトのファイル構造に不要なフォルダーができてしまったので、代わりに

myapp/trunk/app
myapp/trunk/config
...
myapp/trunk/Gemfile

私は持っていた

myapp/trunk/myapp/app
myapp/trunk/myapp/config
...
myapp/trunk/myapp/Gemfile

これは、Gemfileを含むフォルダーになってしまったことを意味します

releases/nnnn/myapp

バンドルはでGemfileを探していました

releases/nnnn

Capistranoの設定をから変更したとき

deploy.rb 

set :repository, "file:///D:/_SVN//myapp/trunk"

deploy.rb 

set :repository, "file:///D:/_SVN//myapp/trunk/myapp"

今、すべてが良いです。本当に次にフォルダ構造を修正することを検討する必要があります!

于 2013-02-22T00:54:52.427 に答える