3

我继承了一个项目并且对事物的开发方面感到满意,但是系统操作员很差,Capistrano 部署失败了。对于上一个开发者之前已经部署的项目:

cap deploy:check

运行良好,导致

You appear to have all necessary dependencies installed

但是当我尝试部署时,我得到

...
ERROR: Repository not found.
...

我有:

  • 三重检查了 github repo 地址
  • 确认我可以从本地机器上的 repo 推送和拉取罚款
  • 确认我可以通过 SSH 从服务器正常连接到 github
  • 确认我可以在服务器上克隆 repo
  • 尝试开启和关闭代理转发
  • 确认 .git/config 和 config/deploy.rb 中的 repo 路径匹配

目前,当代理转发关闭时,从服务器到 github 的 SSH 正在返回前一个开发人员的信息,该开发人员仍然可以访问 github 存储库。

Hi xxxxxx! You've successfully authenticated, but GitHub does not provide shell access.

当代理转发打开时,我显示为经过身份验证的用户。

有关解决此问题的任何提示?非常高兴有一个体面的 URL 来解决这个问题。

4

3 回答 3

6

好的,通过消除过程弄清楚了。这是“deploy.rb”中的以下行

set :deploy_via, "remote_cache"

当它被注释掉时,它部署得很好。如果我取消注释它,它会再次因相同的错误而中断。所以这肯定是问题所在。

我不知道为什么会这样。但现在,我将关闭它。

于 2012-07-16T10:03:33.180 回答
2

我知道我迟到了,但我刚刚从 Github 转移到 Bitbucket 的项目中遇到了这个问题。我能够毫无问题地从 Bitbucket 上的存储库中结帐、更新、推送/拉取,但是我最初的上限部署在移至 Bitbucket 后中断了。

简短的回答是需要删除服务器上的远程缓存。SSH 进入您的服务器,并删除在capistrano 创建的cached-copy目录中找到的整个目录。shared您的共享和发布目录的位置可能与我的不同,但这就是我所要做的:

rm -rf www/shared/cached-copy

在此之后,我能够毫无问题地进行部署。

希望对可能遇到此问题的其他人有所帮助。

于 2014-02-22T03:31:55.180 回答
0

对于故障排除技巧——尤其是因为您是从 GitHub 存储库进行部署的——我建议查看 GitHub 指南以使用 Capistrano 进行部署。该指南还链接到另一个您应该查看的关于管理部署密钥的内容。

default_run_options[:pty]中可能丢失或不正确config/deploy.rb。这可能会导致“身份验证成功,但您无法访问 shell”错误。

关于仍然使用前一个开发人员凭据的脚本,capistrano 脚本在服务器上登录时使用的系统帐户(例如)可能具有脚本可能使用set :user, "deployer"的前一个开发人员的私钥。~/.ssh如果是这种情况,您应该根据指南重新配置脚本以使用 SSH 代理转发,这将使脚本开始使用您的密钥。

于 2012-07-12T05:50:58.953 回答