将docker容器中的jenkins与NAS存储驱动器上的/ var / jenkins_home一起使用

时间:2019-01-14 02:55:20

标签: docker jenkins nas

我运行的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

1 个答案:

答案 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共享来解决此问题。