Docker上的Jenkins无法从GitLab克隆存储库,返回状态码128

时间:2018-10-12 21:20:28

标签: git docker jenkins automated-tests gitlab

尝试在自托管的GitLaB上克隆远程存储库后,在Docker trow returned status code 128上运行的詹金斯

Jenkins on a Docker unable to clone / fetch repository from GitLab returned status code 128

我的设置

  • 中心操作系统

  • Docekr版本:18.06.0-ce

  • Jenkins:2.121.2,2.146,

我设置Jenkins的步骤

  1. 创建具有卷docker run -it --name jenkins -p 8080:8080 --mount source=jenkins_vol,target=/var/jenkins_home IageId的容器
  2. 安装建议的插件。
  3. 在jenkins用户下转到volime,创建SSH密钥。
  4. 将公共密钥添加到GitLAb
  5. 从该卷运行ssh -T git@gitlab.domain.com以使连接生效。可以。
  6. 创建自由式项目
  7. 将回购网址git@gitlab.domain.com:ProjectName/automated-testing-qa.git添加到了自由泳项目
  8. 为Jenkins添加了私钥和密码短语。 运行Jenkins build时,它将尝试克隆仓库约10-15分钟,然后失败,并显示您上面显示的消息。

当我使用https URL而不是SSH URL时,它也会失败。

2 个答案:

答案 0 :(得分:0)

您是否尝试直接从Docker容器中使用SSH URL克隆存储库?可以吗?

使用HTTPS URL时不会提示您输入密码吗?尝试从Docker容器中使用HTTPS URL克隆您的存储库,这应该提示您输入密码,并在您输入正确密码后查看它是否有效?

请在此处发布您的尝试输出,以便我们了解发生了什么。

答案 1 :(得分:0)

我只需使用没有密码短语的SSH密钥即可解决此问题。

当您生成SSH密码时,在要求您输入密码时按Enter。 然后在Jenkins凭据中设置私密SSH密钥时,只需跳过密码短语字段即可。

我还注意到,当我使用相同的凭据设置并且只是编辑值时,仍然出现问题。因此,请确保为没有密码的私人SSH创建新的凭据集,不要重复使用已经存在的凭据。