我为 jenkins/jnlp 创建了一个 docker 镜像,并在 kubernetes 集群中使用它来启动动态从属。有了这个,我就可以检查我的代码并在动态从服务器上运行构建。
但是,当我在插件配置中提到 volume(jenkins_home ie/mycom/jenkins) 作为 NAS 持久卷声明时,我观察到挂载路径权限正在更改为“nobody”而不是“jenkins”。这使我的 jenkins 构建失败,因为它无法在同一文件夹下创建工作区。
Kubernetes 文档指出,我们可以将 fsgroup 详细信息作为安全上下文的一部分传递,而安全上下文是 pod 定义的一部分。但是我在 jenkins-kubernetes plugin 中没有看到该选项。有什么方法可以将“RunAsUser”或“fsgroup”详细信息从 jenkins 传递给 pod?
最佳答案
我得到的解决方法是在 Kubernetes 主机的一个 pod 中提供对 JENKINS_HOME 的“777”访问权限。这也存在于所有其他创建的 pod 中。这样,每次我的容器与 jenkins user 一起运行时,它都能够在没有用户访问的 jenkins_home 目录中创建工作区。
关于jenkins - 将安全上下文传递给 Jenkins-Kubernetes 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48533779/