错误:
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
我尝试了以下方法:
chmod 777
到repo文件夹(包含.git目录的文件夹)chowned
到 repo 文件夹中的jenkins:jenkins
- 尝试从这个本地 repo 文件夹克隆到另一个文件夹:这有效!
当我运行上面的命令时:/usr/bin/git ls-remote -h file:///home/myuser/path/to/project HEAD
on cmd 我得到了分支。
我的问题是:
- 为什么
git ls-remote -h ...
命令在应该是git clone ...
时被调用? - 如何配置 jenkins git 插件以从本地 repo 获取代码
我的环境:
RHEL 5.9
Jenkins 1.519 作为服务安装(无 Web 容器)
最佳答案
安装时Jenkins
作为一项服务,默认情况下,Jenkins
不创建用户目录,如:/home/jenkins
. Jenkins 默认主目录设置为 /var/lib/jenkins
.正如您所期望的那样,根据我的解决方法,jenkins
从其他用户目录访问本地资源时遇到问题。
我将克隆的存储库移至 Jenkins 默认主目录下,即 /var/lib/jenkins
下所以我的Repository URL
在 Jenkins 项目配置中看起来像:file:///${JENKINS_HOME}/repo/<myprojectname>
更新: 以上工作正常......但我从this blog找到了更好的方法
步骤如下:
查找/etc/init.d/jenkins
脚本。有几个$JENKINS
定义的变量
.这应该会引导您到 sysconfig
对于 Jenkins ,即 /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
这个错误现在应该消失了!
关于Jenkins 的 git 插件无法从本地计算机克隆存储库。错误代码 128,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37613370/