Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Capistrano冷启动-git问题:检查_Ruby On Rails_Git_Capistrano_Capistrano3 - Fatal编程技术网

Ruby on rails Capistrano冷启动-git问题:检查

Ruby on rails Capistrano冷启动-git问题:检查,ruby-on-rails,git,capistrano,capistrano3,Ruby On Rails,Git,Capistrano,Capistrano3,cap-staging-git:check在遵循capistrano安装过程后失败ssh with-A选项工作正常,但不使用git:check 环境:使用Rails 4.0.2和Ruby 2.0.0p353的Capistrano 3.1 cap暂存转发结果: $ cap staging forwarding DL is deprecated, please use Fiddle DEBUG [92ef7d99] Running /usr/bin/env env | grep SSH_AUTH_

cap-staging-git:check在遵循capistrano安装过程后失败ssh with-A选项工作正常,但不使用git:check

环境:使用Rails 4.0.2和Ruby 2.0.0p353的Capistrano 3.1

cap暂存转发结果:

$ cap staging forwarding
DL is deprecated, please use Fiddle
DEBUG [92ef7d99] Running /usr/bin/env env | grep SSH_AUTH_SOCK on my_domain.com
DEBUG [92ef7d99] Command: env | grep SSH_AUTH_SOCK
DEBUG [92ef7d99]        SSH_AUTH_SOCK=/tmp/ssh-RWvvKUq627/agent.627
DEBUG [92ef7d99] Finished in 1.843 seconds with exit status 0 (successful).
 INFO Agent forwarding is up to my_domain.com
我可以手动执行请求的操作

$ ssh -p 8888 -A deploy@my_domain.com 'git ls-remote ssh://git@git-domain.com:8889/my_project/my_project.git'
0056e931836c18a22055d370deb3967aefb1f4fb        HEAD
0056e931836c18a22055d370deb3967aefb1f4fb        refs/heads/master
我最好的猜测是,出于某种原因,它没有使用ssh-A选项??非常感谢您抽出时间,希望能够解决这个问题,因为我很乐意使用capistrano进行部署

deploy.rb设置:

lock '3.1.0'
set :application, 'my_project'
set :repo_url, 'ssh://git@git-domain.com:8889/my_project/my_project.git'
set :ssh_options, {
  forward_agent: true,
  port: 8888
}
set :use_sudo, false # tried with and without this setting
set :branch, 'master'
staging.rb设置

role :app, %w{deploy@my_domain.com}
role :web, %w{deploy@my_domain.com}
role :db,  %w{deploy@my_domain.com}
server 'my_domain.com', user: 'deploy', roles: %w{web app db}, deploy_to: '/home/deploy/my_project_staging'

您是否碰巧通过
/etc/ssh/sshd\u config
限制ssh访问

我也有类似的问题,git:check失败,原因如下:

DEBUG[0E6f16lang1024 FAC]权限被拒绝(公钥)。
调试[0E6f16lang1024 FAC]致命:无法从远程存储库读取。

结果是git:check将git-ssh.sh上载到/tmp/project_name,并在服务器上运行以下命令:
git ls remote-hgit@domain.com:/opt/git/project_name
(如本页所述:)


在我的例子中,git存储库和部署服务器位于同一台服务器上,ssh连接只允许从我的ip进行,因此我刚刚添加了
allowusergit@localhost
/etc/ssh/sshd\u config
这很有帮助。

你的回答在某种程度上解决了我的问题。我没有添加允许的用户,而是从repo url中删除了ssh://部分,因为它是该服务器的本地部分?
role :app, %w{deploy@my_domain.com}
role :web, %w{deploy@my_domain.com}
role :db,  %w{deploy@my_domain.com}
server 'my_domain.com', user: 'deploy', roles: %w{web app db}, deploy_to: '/home/deploy/my_project_staging'