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

错误:

我尝试了以下方法:

  • 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 git插件从本地repo获取代码
  • 我的环境:

    RHEL 5.9

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

  • Jenkins仅在为项目配置工作区时首次使用
    git clone
    命令。其他实例使用
    git ls remote
    命令

  • 我在配置Jenkins时遇到了同样的问题。通过使用SSH密钥解决了这个问题。这看起来也是一个配置问题。检查Jenkins帐户是否设置了SSH密钥

  • 另外,请参阅提供的链接中SSH配置的逐步过程。这可能不会给出确切的解决方案,但可以为您指出解决方案


    在将
    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)

  • 打开任务管理器(Ctrl+Shift+Escape)
  • (仅限Windows 10)单击弹出窗口左下角的更多详细信息
  • 转到“服务”选项卡
  • 单击服务。。。钮扣
  • 在服务列表中查找“Jenkins”
  • 右键单击“Jenkins”并单击属性
  • 单击Jenkins属性窗口中的登录选项卡
  • 在“登录身份”下选择此帐户:
  • 输入您的用户名和密码
  • 单击“确定”
  • 重新启动Jenkins服务
  • 那么鲍勃是你叔叔

  • 我发现其他解决方案对我来说有点“黑客”。我所做的是将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