詹金斯错误的卷权限
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了詹金斯错误的卷权限相关的知识,希望对你有一定的参考价值。
我有托管在那里我已经安装了码头工人和使用泊坞窗,撰写文件创建容器的Oracle Linux的虚拟机。我放置在共享文件夹下的卷詹金斯但在开始时搬运工-构成了我得到了以下错误詹金斯:
詹金斯|摸:不能碰“/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"
答案
问题是,在容器中的用户拥有不同的用户ID:组识别符号作为主机上的用户。
你有两种可能性:
- 可以保证在容器中的用户具有相同的用户ID:组识别符号,如主机上的用户,它可以访问安装的卷。对于这一点,你必须调整在Dockerfile用户。与同一用户ID的dockerfile创建一个用户:GROUPID,然后切换到该用户https://docs.docker.com/engine/reference/builder/#user
- 您可以确保主机上的用户具有相同的用户ID:组识别符号像在容器中的用户。对于这一点,与
docker exec -it <container-name> bash
进入容器,并显示用户IDid -u <username>
组IDid -G <username>
。更改安装的卷到这个用户ID的权限:组识别符号。
另一答案
最简单的解决它使用-u参数。记住这将运行作为根用户(UID = 0)
docker run -u 0 -d -p 8080:8080 -p 50000:50000 -v /data/jenkins:/var/jenkins_home jenkins/jenkins:lts
另一答案
作为haschibaschi在容器中陈述你的用户有不同的用户名:比主机上的用户GROUPID。
为了解决这个问题是没有的(问题)卷映射到启动容器,然后在容器上运行的bash:
docker run -p 8080:8080 -p 50000:50000 -it jenkins bin/bash
一旦容器的外壳内运行id命令,你会得到的结果一样:
uid=1000(jenkins) gid=1000(jenkins) groups=1000(jenkins)
退出容器,去你试图映射并运行该文件夹:
chown -R 1000:1000 .
随着现在的权限匹配,你应该能够与卷映射运行原始泊坞窗命令。
另一答案
此错误解决使用下面的命令。
转到您的詹金斯数据安装路径:/媒体
运行以下命令:
cd /media
sudo chown -R ubuntu:ubuntu sf_devops-workspaces
重启詹金斯搬运工容器
docker-compose restart jenkins
另一答案
我有同样的问题,它得到了禁用SELINUX以后解决。这不是建议禁用SELINUX所以安装自定义semodule并启用它。有用。只有改变权限不会在CentOS 7工作。
以上是关于詹金斯错误的卷权限的主要内容,如果未能解决你的问题,请参考以下文章