docker安装jenkins及其相关问题解决
? 1.拉取镜像并启动容器 docker run -d -p 8080:8080 -p 50000:50000 -v $(pwd)/data:/var/jenkins_home --name jenkins jenkins ? 2.通过docker ps命令你会发现jenkins容器没有运行起来 ? 3.通过docker ps -a查看所有容器并找到对应的Jenkins容器编号,并通过命令查看对应的日志 docker logs Jenkins 错误信息如下: touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions? ? 分析: 我们检查一下之前启动方式的"/var/jenkins_home"目录权限,查看Jenkins容器的当前用户: 当前用户是"jenkins"而且"/var/jenkins_home"目录是属于jenkins用户拥有的。 ? docker run -ti --rm --entrypoint="/bin/bash" jenkins -c "whoami && id ? 控制台输出: ? ? docker run -ti --rm --entrypoint="/bin/bash" jenkins -c "ls -la /var/jenkins_home" ? 控制台输出: ? ? 而当映射本地数据卷时,/var/jenkins_home目录的拥有者变成了root用户 docker run -ti --rm -v $(pwd)/data:/var/jenkins_home --entrypoint="/bin/bash" jenkins -c "ls -la /var/jenkins_home" ? 控制台输出: ? 这就解释了为什么当"jenkins"用户的进程访问"/var/jenkins_home"目录时,会出现? 我们再检查一下宿主机上的数据卷目录,当前路径下"data"目录的拥有者是"root",这是因为这个目录是Docker进程缺省创建出来的。 ? ls -la data ? 控制台输出: ? 发现问题之后,相应的解决方法也很简单:把当前目录的拥有者赋值给 递归授权并再次启动jenkins sudo chown -R 1000 data
docker start Jenkins
? 最后输入浏览器地址:http://IP:8080回车 你会发现终于看到老头子了 当然了你还需要安装对应的插件。 ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |