我继承了一个项目并且对开发方面很满意,但是系统性能差,而且Capistrano部署失败了。对于之前由开发人员部署的项目:
cap deploy:check
运行良好,导致
You appear to have all necessary dependencies installed
但是当我尝试部署时,我得到了
...
ERROR: Repository not found.
...
我有:
目前,当代理转发时,来自服务器的SSH进入github将返回前一个开发者的信息,该开发者仍然可以访问github repo。
Hi xxxxxx! You've successfully authenticated, but GitHub does not provide shell access.
启用座席转发功能后,我会将其显示为经过身份验证的用户。
有关解决此问题的任何提示吗?非常高兴能够通过排除故障的正确网址。
答案 0 :(得分:6)
好的,通过消除过程弄明白了。它是'deploy.rb'中的以下行
set :deploy_via, "remote_cache"
当这被注释掉时,它会部署好。如果我取消注释它,它会再次出现相同的错误。所以这肯定是问题所在。
我不知道为什么会发生这种情况。但是现在,我会关闭它。
答案 1 :(得分:2)
我知道我已经迟到了游戏,但我刚刚遇到了一个项目,我从Github搬到了Bitbucket。我能够在没有问题的情况下从Bitbucket上的回购中检出,更新,推/拉,但是在转移到Bitbucket之后我的初始上限部署已经破了。
简短的回答是需要删除服务器上的远程缓存。 SSH进入您的服务器,并删除capistrano创建的cached-copy
目录中找到的整个shared
目录。您的共享和发布目录的位置可能与我的不同,但这是我必须做的全部:
rm -rf www/shared/cached-copy
在此之后,我能够毫无问题地部署。
希望能帮助可能遇到此问题的其他人。
答案 2 :(得分:0)
对于疑难解答提示 - 特别是因为您要从GitHub仓库部署 - 我建议您查看Deploying with Capistrano的GitHub指南。该指南还链接到您应该在managing deploy keys上查看的其他指南。
default_run_options[:pty]
中的 config/deploy.rb
可能丢失或不正确。这可能导致“成功的身份验证,但没有shell访问”错误。
关于仍使用以前开发人员凭据的脚本,capistrano脚本在服务器上登录的系统帐户(例如set :user, "deployer"
)可能具有~/.ssh
中的前一个开发人员私钥,该脚本可能是期待使用。如果是这种情况,您应该根据脚本开始使用密钥的指南重新配置脚本以使用SSH代理转发。