Jenkins用户不在kubernetes中的动态jnlp从站上使用passwd

时间:2019-05-10 19:44:49

标签: jenkins kubernetes jenkins-pipeline

我正在构建一个主要用于c ++ cmake构建的系统。我让詹金斯(Jenkins)触发了动态Pod,触发了shell脚本等。但是,我无法获取它来签出代码。现在,我的Jenkinsfile启动了一个应该在其中运行实际编译器的容器。该“ sub”容器已调整为可编译C ++代码。现在,我在该吊舱中运行了詹金斯脚本,但是,当我尝试

checkout scm

出现错误提示

ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Command "git fetch --tags --force --progress git@gitlab.com:mystuff/hello-world-cmake.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: No user exists for uid 1000080000
fatal: Could not read from remote repository.

我的主文件夹是标准的/home/jenkins,工作空间文件夹在那里,依此类推,等等。但是,当我转储/etc/passwd文件时,jenkins用户未列出它。

将jenkins用户添加到该文件的合适方法是什么?

1 个答案:

答案 0 :(得分:0)

您正在为Jenkins奴隶使用什么图像?它有用户詹金斯吗?如果有的话,您需要在规范中为Jenkins奴隶指定此选项:

spec:
  securityContext:
    runAsUser: 1000

更新:

您无法在Openshift中运行默认的Jenkins图像,因为Openshift以随机用户身份运行容器。您应该从内置的Jenkins模板“ Jenkins Persistent”运行Jenkins。如果您没有此模板,也没有Jenkins图像流-您可以尝试使用图像openshift/jenkins-2-centos7。查看详细信息:

https://github.com/openshift/jenkins/issues/168

https://github.com/openshift/jenkins