Capistrano のまったく新しい。
リモート サーバーに公開したいローカル git リポジトリがあります。ここで他の回答に従い、この構成を思いつきました:
require 'bundler/capistrano'
set :application, "app_name"
set :repository, '~/Dropbox/app/.git'
set :user, 'user_name'
set :deploy_to, 'ssh://remote_host/~/railsApps/app_name'
set :scm_verbose, true
set :deploy_via, :copy
default_run_options[:pty] = true
server "remote_server", :web, :app, :db, :primary => true
set :scm, :git
set :branch, "master"
ssh_options[:keys] = %w(~/.ssh/id_rsa)
after "deploy:restart", "deploy:cleanup"
これはリモート サーバーのパスワードを要求しなくなりましたが、常に次のエラーで失敗します。
The --deployment flag requires a Gemfile.lock. Please make sure you have checked your Gemfile.lock into version control before deploying.
私は確実に Git リポジトリに Gemfile.lock ファイルを含めています。
プッシュ先のリモート git フォルダー (同じサーバー内) から複製するように Capistrano 構成を変更すると、エラーは発生しませんが、接続しようとするたびにパスワードを要求されます。
助けてください。
CLI から通常の SSH 接続を使用すると、SSH キーのペアリングが正常に機能することに注意してください。
解決
ティグレインのおかげで解決できました。これが他の誰かを助けることを願って、これが最終的にトリックをしたものです:
パスがリモートサーバーに対してローカルであるという点でTigraineは正しいですが、ローカルパスを使用しようとするとエラーが発生しました.Capistranoはローカルマシンで検索を続け、それらのパスが見つからない場合はエラーをスローしました.
私がしなければならなかったのは、local_repository
を構成に追加することでした。その後、すべてが機能しました。したがって、私が変更したビットは次のとおりです。
set :local_repository, '~/Dropbox/app_name/.git'
set :repository, '~/railsApps/app_name.git'
set :deploy_to, '~/railsApps/app_name'
パスは私のlocal_repository
マシンに対してローカルでrepository
あり、deploy_to
パスはリモート サーバーに対してローカルです。