Jenkins的git插件无法从本地计算机克隆repo。错误代码128
错误: 我尝试了以下方法:Jenkins的git插件无法从本地计算机克隆repo。错误代码128,git,jenkins,jenkins-plugins,Git,Jenkins,Jenkins Plugins,错误: 我尝试了以下方法: chmod 777到repo文件夹(包含.git目录的文件夹) chowned到repo文件夹上的jenkins:jenkins 尝试从此本地回购文件夹克隆到另一个文件夹:此操作有效 运行上述命令时:/usr/bin/git ls remote-hfile:///home/myuser/path/to/project 头在cmd上,我得到分支 我的问题是: 为什么在应该是git clone…时调用了git ls remote-h…命令 如何配置jenkins gi
到repo文件夹(包含.git目录的文件夹)chmod 777
到repo文件夹上的chowned
jenkins:jenkins
- 尝试从此本地回购文件夹克隆到另一个文件夹:此操作有效李>
/usr/bin/git ls remote-hfile:///home/myuser/path/to/project 头
在cmd上,我得到分支
我的问题是:
git ls remote-h…
命令git clone
命令。其他实例使用git ls remote
命令在将
Jenkins
作为服务安装时,默认情况下,Jenkins
不会创建用户目录,如:/home/Jenkins
所示。詹金斯默认主目录设置为/var/lib/Jenkins
。在我的工作中,正如您所料,jenkins
无法从其他用户目录访问本地资源
我将克隆的repo移动到Jenkins默认主目录下,即/var/lib/Jenkins
下,因此Jenkins项目配置中的存储库URL
如下所示:文件://${Jenkins_home}/repo/
更新:
上面的工作很好…但我找到了一个更好的方法,从
这些步骤概述如下:
查找/etc/init.d/jenkins
脚本。定义了几个$JENKINS
变量
. 这将引导您找到jenkins的sysconfig
,即/etc/sysconfig/jenkins
。
停止jenkins实例:
sudo/sbin/service jenkins stop
备份
cp/etc/sysconfig/jenkins/etc/sysconfig/jenkins.bak
在此文件中,更改以下属性:
$JENKINS\u USER=”“
更改所有相关Jenkins目录的所有权:
chown-R:/var/lib/jenkins
chown-R:/var/cache/jenkins
chown-R:/var/log/jenkins
重新启动jenkins,错误就会消失
sudo/sbin/service jenkins start
这个错误现在应该消失了 这个问题已经有一段时间没有提出了,但我今天遇到了这个问题,资源非常有限。很可能是因为人们倾向于远程连接git存储库 我用strace检查了jenkins到底在做什么,是的,权限有问题 但我用一种比答案2更简单的方法解决了这个问题——将jenkins添加到git服务器组——在我的例子中,git1:
根#gpasswd-a jenkins git1
根目录#服务重新启动
我在Windows上运行Jenkins,遇到了同样的问题。我可以通过让Jenkins服务以我的用户身份登录到我的笔记本电脑上来解决这个问题
(Windows 7)
我发现其他解决方案对我来说有点“黑客”。我所做的是将Jenkins主文件夹从/Users/Shared/移动到/Users/[myAccount]/。这样,我的Jenkins就可以访问我的repos和我的Android SDK(因为那是我使用Jenkins的地方)。然后更改JENKINS_HOME环境变量。我通过在我的.bash_配置文件中输入JENKINS_主页来实现这一点(但还有其他方法)
注意:我使用OSX而不是
文件://
,您也可以使用ssh://
,如下所示:
请注意,您需要执行标准ssh设置:
~/.ssh
~/.ssh/id\u rsa
)粘贴到Jenkins中(项目设置、git repo、凭据)~/.ssh/authorized_key
根据您的链接,我将jenkins添加到sudo列表
jenkins ALL=(ALL:ALL)ALL
不幸的是,它仍然无法从本地文件克隆repo…再次感谢!如果您将Jenkins用作操作系统上的用户,是否检查了SSH密钥是否放在%userprofile%目录下谢谢。。在最新的Ubuntu中将这些目录的所有权更改为“jenkins”用户后,它就可以工作了。至少您还需要查看sysconfig/defaults文件中$NAME的其他用法。甚至对“jenkins.war”文件的引用实际上也是$NAME.war。非常感谢!我已经将Jenkins添加到git组中,但我还需要重新启动Jenkins服务,我从阅读您的答案时尝试了该服务,它成功了!现在我在Jenkins配置中只使用了/opt/git/repo.git,并且消除了错误代码128。无论您试图解决什么问题,chmod 777
都是一个糟糕的反模式
Failed to connect to repository : Command "/usr/bin/git ls-remote -h file:///home/myuser/path/to/project HEAD" returned status code 128:
stdout:
stderr: fatal: 'home/myuser/path/to/project' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
ssh://YOUR_USER@localhost/PATH_TO_YOUR_PROJECT