Jenkins错误的卷权限

31

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

jenkins | touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied jenkins | Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions? jenkins exited with code 1

这里是卷的声明

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

我有同样的问题,有人可以帮助我们吗? - Abderrahim
请放置您的完整docker-compose.yml文件。 - OscarAkaElvis
快速解决方案:查找在容器内运行Jenkins的用户的数字用户ID,并将主机目录的所有者更改为此用户ID。 - Henry
一些更多的想法:https://dev59.com/FmAg5IYBdhLWcg3wfa96#27021154 - Henry
@OscarAkaElvis https://hastebin.com/bucunekelo。 - Taoufik J
@Henry,我该怎么做?我没有使用Dockerfile,只有一个Docker Compose!但是容器无法启动,因此我无法访问它并执行命令。 - Taoufik J
13个回答

-1

使用以下命令解决此错误。

进入您的Jenkins数据挂载路径:/media

运行以下命令:

cd /media
sudo chown -R ubuntu:ubuntu sf_devops-workspaces

重启 Jenkins Docker 容器
docker-compose restart jenkins

-1
首先,您可以使用echo $USER命令验证当前用户,然后在Dockerfile中提及用户,如下所示(在我的情况下,用户为root)screenshot

-2

我曾经遇到同样的问题,在禁用SELINUX后问题得到了解决。 不建议禁用SELINUX,因此请安装自定义semodule并启用它。 这样可以解决问题。仅更改权限在CentOS 7上无法解决。


1
不建议禁用SELinux,而是对目录应用SELinux策略。 - smc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接