我有一个使用 Capistrano 部署的 PHP Web 应用程序。我的公司从使用本地 git 存储库转移到将我们的代码存储在 Github 上。
由于一些我们无法控制的问题,我们无法使用 SSH 克隆我们的 Github 存储库。相反,我们必须使用 https。我们已经在我们的 Github 帐户上设置了一个只读用户,这样我们就可以使用 netrc 文件通过 HTTPS 从 Github 中提取,而无需提示输入用户名和密码。
这在命令行上可以正常工作,但是,从 Capistrano 脚本中,它仍然提示输入用户名和密码。这是我的 Capistrano 脚本的 deploy.rb:
require 'capistrano/php'
set :application, "app"
set :repository, "https://github.com/mycompany/app.git"
set :deploy_to, "/var/www/html/app"
set :scm, :git
set :deploy_via, :remote_cache
set :copy_exclude, %w(.git)
set :git_enable_submodules, true
default_run_options[:pty] = true
set :use_sudo, true
role :web, "webbox01"
role :app, "webbox01"
同样,git clone https://github.com/mycompany/app.git
直接从命令行执行 a 可以正常工作,但在 deploy.rb 中它会失败。如果我像这样在 URL 中手动输入用户的用户名和密码,https://rouser:password@github.com/mycompany/app.git
Capistrano 脚本就可以正常工作。
如果可以避免的话,我不想在文件中硬编码用户名和密码,但如果我必须这样做,我必须这样做。
提前感谢您提供的任何建议。