docker - 生成的文件夹和共享卷的权限
问题描述
我已经构建了一个 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" '
}
}