【问题标题】:Capistrano ignoring netrc fileCapistrano 忽略 netrc 文件
【发布时间】:2012-05-17 14:10:22
【问题描述】:

我有一个使用 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 可以正常工作,但在 deploy.rb 中它会失败。如果我像 https://rouser:password@github.com/mycompany/app.git 这样在 URL 中手动输入用户的用户名和密码,Capistrano 脚本就可以正常工作。

如果可以避免的话,我不想在文件中硬编码用户名和密码,但如果我必须这样做,我必须这样做。

提前感谢您提供的任何建议。

【问题讨论】:

    标签: git github capistrano .netrc


    【解决方案1】:

    使用 capistrano 转到您之前部署的服务器,并在共享 capistrano 目录中编辑缓存的 git 配置文件。

    共享/缓存复制/.git/config

    删除原始部分中的任何剩余用户名,使您的网址看起来像:https://github.com/mycompany/app.git

    【讨论】:

      猜你喜欢
      • 2022-11-03
      • 1970-01-01
      • 1970-01-01
      • 2014-03-16
      • 2010-10-20
      • 2018-08-31
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      相关资源
      最近更新 更多