首页 > 解决方案 > 生成的文件夹和共享卷的权限

问题描述

我已经构建了一个 Docker 映像并上传到内部注册表。在 Jenkins 上,我拉取图像并使用root用户 ( -u root) 运行容器。我还从${workspace} Inside 容器挂载了一个共享文件夹,我在挂载的共享文件夹中运行 pytest。这会生成临时__pycache__文件夹以及 pytest 的报告。但是这些临时文件夹和报告是由root用户生成的。

结果,由于临时文件夹和报告文件的权限不足,Jenkins 无法在工作区上运行清理。

我试图在图像本身内创建一个 (jenkins) 用户,但是当 jenkins 用户作为参数 ( -u jenkinsuser)传递时,jenkins 无法运行容器

我还尝试chown在测试后使用文件夹,以便我可以将特定用户和组设置到文件夹,但如果在运行期间测试失败,则永远不会运行。

期待这里的专家就如何规避生成文件夹的权限问题提供指导。

这是詹金斯内部编写的代码的粗略代码

docker.withRegistry("<server>", "<svc_id>") {
   docker.image('<image_name>').inside('-u root --rm -e <proxy> -e <proxy> --name <mount_name> --mount source=${workspace},target=/app,type=bind') { c ->
                                sh 'echo "Inside container" '
  }
}

标签: dockerjenkins

解决方案


推荐阅读