完全新的Capistrano。Capistrano本地git存儲庫克隆到遠程請求密碼儘管SSH密鑰
我有我想要發佈到我的遠程服務器的本地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文件。
如果我將Capistrano配置從我推送到的遠程git文件夾(在同一服務器上)克隆,那麼我不會收到錯誤,但每次嘗試連接時都會要求輸入密碼。
請幫忙。
注意 SSH密鑰配對在從常規SSH連接的CLI中使用時工作正常。
解決方案
感謝Tigraine我能解決這個問題。希望這可以幫助別人,這裏是最後的伎倆:
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
路徑是本地到遠程服務器。
我曾嘗試SSH轉發並沒有什麼區別。但請注意,它現在似乎工作,因爲它現在配置,只是我得到一個錯誤的Gemfile.lock文件不存在。 – kakubei
您是否嘗試在本地運行bundler以查看Gemfile.lock是否是最新的? – Tigraine
是的,同樣的問題。我願意重寫配置,以便它能夠從服務器本身的repo文件夾中部署,如果我能弄清楚如何去做。哪一個是首選? – kakubei