我试图防止在删除容器后Jenkins数据丢失,因此我映射了容器(-v /home/jenkins/data:/var/jenkins_home
)的主机目录。但是我无法运行容器。我得到的错误是:
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
因此,我需要为该文件夹(/home/jenkins/data
)添加权限或以jenkins
用户-u jenkins
的身份运行容器。
添加此标志后,Jenkins正在运行,并且删除和重新创建容器后的数据不会丢失。但是我无法重新启动Jenkins(http://jenkinshost.local/restart
)。我在Jenkins应用程序中遇到以下错误:Jenkins cannot restart itself as currently configured.
。当我不挂载主机目录时,不会发生此错误。我无法安装任何插件等等。
我通过以下方式运行容器:
sudo docker run -v /home/jenkins/data:/var/jenkins_home -p 80:8080 -u jenkins jenkins/jenkins
或
sudo docker run -v /home/jenkins/data:/var/jenkins_home -p 80:8080 -u jenkins jenkins/jenkins
您对此问题有解决方案吗?
解决方案
此问题的解决方案是在主机上创建卷,而不是映射特定的文件夹:
docker run -p 80:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home -d jenkins/jenkins:lts