因此,我已经使用 Capistrano 进行了相当长的一段时间的部署。一切都很好。最近我遇到了一些问题。
这个过程很简单。我有一个比特桶帐户。我会推送到那里,然后 cap 会获取远程 repo,然后将其推送到远程服务器。这样做时,使用时cap deploy
会提示我两次输入密码;实际上,我什至不知道为什么它两次要求我输入密码(所以也许这可能会有所启发)。尽管如此,它工作了很长时间,然后它随机停止工作。在第二次请求密码时,它现在说fatal: HTTP request failed
。
为了让事情变得更加混乱,我查看了这个过程,它在第二个密码提示之后从github请求一个 repo ......而不是bitbucket。有一段时间我用过 github,但那是过去的事了。因此,我在 Capfile 和 deploy.rb 中查找了对 github repo 的引用,但没有找到任何对它的引用。
这是在哪里,为什么要求它?我怎样才能解决这个问题?
作为参考,这是我的 deploy.rb (当然敏感信息被删除):
set :application, "Application"
set :deploy_to, "/home/user/apps/app"
set :password, "webhostpassword"
set :user, "webhostuser"
set :domain, "webhostip"
set :deploy_via, :remote_cache
set :use_sudo, false
set :scm, :git
set :repository, "https://username@bitbucket.org/account/app.git"
set :scm_username, "repousername"
set :scm_passphrase, "repopassword"
ssh_options[:forward_agent] = true
role :web, domain # Your HTTP server, Apache/etc
role :app, domain # This may be the same as your 'Web' server
role :db, domain, :primary => true
default_run_options[:pty] = true
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true } do
run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
end
end
这里是失败的输出:
servers: ["webhostip"]
[webhostip] executing command
** [webhostip :: out] Password:
Password:
** [webhostip :: out]
** [webhostip :: out] error: The requested URL returned error: 403 Forbidden
while accessing https://repo@github.com/repo/app.git/info/refs
**
** fatal: HTTP request failed
←[2;37mcommand finished in 18881ms←[0m
请注意第 6 行和第 7 行,它在要求输入密码后访问 github(这是第二次使用时出现密码提示cap deploy