我运行的ubuntu 18.04带有通过cifs安装的NAS驱动器。我已经拉入jenkins:latest
图像,并使用以下运行命令启动了该图像:
docker run --restart=unless-stopped --name devonejenkins -p 8080:8080 -p 50000:50000 -v /mnt/storage/jenkins:/var/jenkins_home jenkins
该命令不起作用。但是,在vm上使用本地磁盘,如下所示:
docker run --restart=unless-stopped --name devonejenkins -p 8080:8080 -p 50000:50000 -v /home/chrisg/jenkins:/var/jenkins_home jenkins
似乎可以正常工作。
不粘贴大量的堆栈跟踪代码,这似乎是失败点:
严重:无法初始化jenkins java.io.IOException:无法 将/ var / jenkins_home / secrets / initialAdminPassword的时间戳设置为 1547434033746
答案 0 :(得分:0)
这取决于您如何安装cifs卷。
This example是指ContainX/docker-volume-netshare
,这是一个Docker插件,可在Docker容器中安装NFS v3 / 4,AWS EFS或CIFS。
older (2015) article提到了权限问题:
除非您使用适当的SELinux安全上下文或通过共享安装共享,否则将不允许docker容器访问您的CIFS安装点。
并且:
与NFS不同,CIFS挂载在挂载时处理用户身份验证。这意味着CIFS挂载点上的所有文件和目录将归同一用户/组所有。
如果在您的容器中运行的进程的用户和CIFS挂载的用户不同,则可能会出现问题。
我通过使用不同的uid和gid参数多次装载同一CIFS共享来解决此问题。