一尘不染

詹金斯错误的卷权限

jenkins

我有一台托管Oracle Linux的虚拟机,在其中安装了Docker并使用docker-
compose文件创建了容器。我将jenkins卷放在一个共享文件夹下,但是在启动docker-compose时,我遇到了Jenkins的以下错误:

詹金斯| 触摸:无法触摸’/var/jenkins_home/copy_reference_file.log’:权限被拒绝
无法写入/var/jenkins_home/copy_reference_file.log。卷权限错误?詹金斯退出了代码1

这是卷的声明

  volumes:
    - "/media/sf_devops-workspaces/dev-tools/continuous-integration/jenkins:/var/jenkins_home"

阅读 166

收藏
2020-07-25

共1个答案

一尘不染

问题是,容器中的用户与主机上的用户具有不同的userid:groupid。

您有两种可能性:

  1. 您可以确保容器中的用户具有与主机上的用户相同的userid:groupid,该主机可以访问装入的卷。为此,您必须在Dockerfile中调整用户。在dockerfile中使用相同的userid:groupid创建一个用户,然后切换到该用户https://docs.docker.com/engine/reference/builder/#user

  2. 您可以确保主机上的用户与容器中的用户具有相同的userid:groupid。为此,使用输入容器,docker exec -it <container-name> bash并显示用户ID id -u <username>组ID id -G <username>。将装入的卷的权限更改为此userid:groupid。

2020-07-25