Jenkins的git插件无法从本地计算机克隆回购.错误代码128

Vik*_*ram 16 git jenkins jenkins-plugins

错误:

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
Run Code Online (Sandbox Code Playgroud)

我尝试过以下方法:

  • chmod 777 到repo文件夹(包含.git目录的文件夹)
  • chownedjenkins:jenkins在回购文件夹
  • 试图从这个本地repo文件夹克隆到另一个文件夹:这个工作!

当我运行上面的命令:/usr/bin/git ls-remote -h file:///home/myuser/path/to/project HEAD在cmd上我得到了分支.

我的问题是:

  1. 为什么git ls-remote -h ...命令应该被调用git clone ...
  2. 如何配置jenkins git插件从本地repo获取代码

我的环境:

RHEL 5.9

Jenkins 1.519作为服务安装(没有Web容器)

Git插件

Vik*_*ram 16

Jenkins默认情况下,作为服务安装时,Jenkins不会创建用户目录,如下所示:/home/jenkins.Jenkins默认主目录设置为/var/lib/jenkins.正如您所期望的那样,从我的解决方案中,jenkins无法从其他用户目录访问本地资源.

我将我的克隆回购移动到Jenkins默认主目录下/var/lib/jenkins,即在我Repository URL的Jenkins项目配置下如下所示:file:///${JENKINS_HOME}/repo/<myprojectname>

更新: 以上工作正常......但我从这个博客找到了更好的方法

这里的步骤如下:

查找/etc/init.d/jenkins脚本.$JENKINS定义了一些变量.这应该引导你到sysconfigjenkins ie /etc/sysconfig/jenkins.停止你的jenkins实例:

sudo /sbin/service jenkins stop

做一个备份

cp /etc/sysconfig/jenkins /etc/sysconfig/jenkins.bak

在此文件中,更改以下属性:

$JENKINS_USER="<your desired user>"

更改所有相关Jenkins目录的所有权:

chown -R <your desired user>:<your user group> /var/lib/jenkins

chown -R <your desired user>:<your user group> /var/cache/jenkins

chown -R <your desired user>:<your user group> /var/log/jenkins

重新启动jenkins,该错误应该消失

sudo /sbin/service jenkins start

这个错误现在应该消失了!


小智 8

问这个问题已经有一段时间了,但我今天遇到了这个问题而且资源非常少.最有可能的是,因为人们倾向于远程连接到git存储库.

我使用strace检查了jenkins究竟在做什么,是的,这是权限问题.

但是我以一种比答案#2更简单的方式解决了它 - 通过将jenkins添加到git服务器组 - 在我的例子中,git1: root# gpasswd -a jenkins git1 root# service jenkins restart


Gre*_*rdt 6

我在Windows上运行Jenkins并遇到了同样的问题.我能够通过让我的笔记本电脑上的用户登录Jenkins服务来解决这个问题.

(Windows 7的)

  1. 打开任务管理器(Ctrl + Shift + Escape)
  2. 转到" 服务"选项卡
  3. 单击Services...按钮
  4. 在服务列表中找到"Jenkins"
  5. 右键单击"Jenkins",然后单击" 属性"
  6. 单击Jenkins Properties窗口中的Log On选项卡
  7. 选择此帐户:登录时:
  8. 输入你的用户名与密码
  9. 点击 OK
  10. 重新启动Jenkins服务
  11. 鲍勃是你的叔叔.