创建詹金斯容器时,出现以下错误。可能是什么问题?
jenkins_1 | touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
jenkins_1 | Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
这是我的docker-compose:
version: '3.7'
services:
jenkins:
image: jenkins/jenkins:lts
ports:
- 7080:8080
- 50000:50000
privileged: true
volumes:
- /tmp/jenkins-test:/var/jenkins_home
答案 0 :(得分:2)
这在issue中有解释。
sudo chown 1000 /tmp/jenkins-test
如果目录已包含文件:
sudo chown -R 1000 volume_dir
这会将jenkins数据存储在主机上的/ your / home中。确保 jenkins用户可以在容器中访问/ your / home (jenkins用户-uid 1000)或将-u some_other_user参数与 泊坞窗运行。
在挂载之前,必须在主机中设置正确的权限 卷
sudo chown 1000 volume_dir
或者您可以尝试
已解决,但涉及酷刑。
在主机上创建一个jenkins
用户,请注意它是uid
docker run -u <jenkins-uid> ...
请勿
docker run -u 'jenkins' -
导致容器自身的 jenkins用户继续使用。在上选择其他名称 主机并通过或通过结果uid。
您可以尝试运行的bash脚本
#!/bin/bash
mkdir $PWD/jenkins
sudo chown -R 1000:1000 $PWD/jenkins
docker run -d -p 8080:8080 -p 50000:50000 -v $PWD/jenkins:/var/jenkins_home --name jenkins jenkins
答案 1 :(得分:0)
如果在获得所有许可后一切仍然正常,如果一切仍然不起作用,则只需更改卷映射即可。
./your_folder:/var/jenkins_home
它会很好地工作。.pwd有时会导致创建问题。