Bug 背景:
docker 运行的jinkens ,一步小心删除了容器和镜像。 下载新的 jenkinsci/blueocean 镜像之后重新运行报错。
问题描述
运行:
代码语言:javascript复制docker run
-p 9090:8080
-p 50000:50000
-v /data/jenkins-data:/var/jenkins_home
-v /var/run/docker.sock:/var/run/docker.sock
jenkinsci/blueocean
报错:
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions? touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
原因分析:
没有权限往挂载磁盘写入东西。
网上百度了下大多数,让修改挂载文件的权限。
例如我需要把/data/jenkins-data
的 拥有者赋值给uid 1000,再启动"jenkins"容器就一切正常了
sudo chown -R 1000 /var/jenkins-data
我也按照这个改了,但是容器内部再使用docker 的时候就又没有权限了。所以只能重新回来找其他方法。
最后发现docker可以用root 运行 -u root 就可以。
解决方案:
使用root 权限运行:
代码语言:javascript复制docker run
-u root
-p 9090:8080
-p 50000:50000
-v /data/jenkins-data:/var/jenkins_home
-v /var/run/docker.sock:/var/run/docker.sock
jenkinsci/blueocean