解决Jenkins集成docker插件问题的一些方法
目录
- 背景
- 问题一
- 错误二
- 错误三
- 错误四
- 总结
背景
测试环境使用Jenkins集成docker插件实现测试环境一键部署服务,首先jenkins已安装docker build and publish插件,但是运营job出现了一系列的问题!
问题一
docker执行报错,Build step 'Docker Build and Publish' marked build as failure,导致这句的问题有很多,更详细的错误信息:jenkins容器不支持docker操作?
分析问题:jenkins是使用docker部署的,那么在jenkins容器中并不会有docker相关的操作命令,所以执行失败!
解决方案:需要将宿主机的docker环境映射到jenkins容器中,才能使用docker命令行
docker run --name myjenkins -p 8123:8080 -p 50000:50000 -v /run/docker.sock:/var/run/docker.sock -v /var/jenkins_home:/var/jenkins_home -u 0 -d jenkins/jenkins:lts
再次执行,结果还是不对,没有解决!
错误二
提示bin目录下无可执行命令?
分析:我们知道安装的任何一个环境,如果想在linux环境执行它的命令行,都需要加入环境变量:/usr/bin
解决:继续映射宿主机docker可执行命令
docker run --name myjenkins -p 8123:8080 -p 50000:50000 -v /run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v /var/jenkins_home:/var/jenkins_home -u 0 -d jenkins/jenkins:lts
tips:which命令,有点类似whereis 查找命令或者文件:前者查看系统环境变量中的命令(返回第一个结果),后者程序名相关路径(返回所有匹配的结果)
错误三
找不到相关依赖:error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or/libltdl.so.7
分析:jenkins容器内部,因为容器与宿主机没有共享,在宿主机可以找到该库:cd usr/lib64/
解决:在宿主机找到libltdl.so.7 依赖库,挂载容器即可
docker run --name myjenkins -p 8123:8080 -p 50000:50000 -v /run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 -v /var/jenkins_home:/var/jenkins_home -v /var/data/shell:/var/data/shell -u 0 -d jenkins/jenkins:lts
错误四
no basic auth credentials 没有认证
分析原因:这个插件是在jenkins容器内部使用docker命令,build镜像不会报错,是在容器内,当需要push到镜像仓库时,需要auth
解决办法:直接的办法在jenkins的job中加入一行认证,docker login --username=xxxx --password=xxxx nexus.xxxx.com
tips:执行完命令,会在当前目录生成一个.credentials里面记录了登录nexus镜像仓库的帐号密码信息
总结
至此,前面的步骤已经完成了jenkins容器内部可以使用docker命令了,也就不需要通过shh插件,从容器跳出到宿主机执行build&push操作命令了,需要执行启动容器的脚本即可!
docker容器化,在宿主机与容器映射的任何东西都是同一个,也就是不管修改了宿主机挂载容器的文件还是容器中修改了挂载的宿主机文件都会同时被修改。
到此这篇关于解决Jenkins集成docker插件问题的一些方法的文章就介绍到这了,更多相关Jenkins集成docker插件内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇:docker-maven-plugin打包镜像并上传到私有仓库
栏 目:其它服务器
本文标题:解决Jenkins集成docker插件问题的一些方法
本文地址:https://zz.feitang.co/server/33118.html
您可能感兴趣的文章
- 01-12Docker部署rabbitmq遇到的两个问题
- 01-12最新虚拟机VMware 14安装教程
- 01-12使用docker compose安装harbor私有仓库的详细教程
- 01-12Windows下Docker安装各种软件的详细过程
- 01-12seata docker 高可用部署的详细介绍
- 01-12浅谈Tomcat多层容器的设计
- 01-12Gogs+Jenkins+Docker 自动化部署.NetCore的方法步骤
- 01-12解决vscode docker插件docker.socket权限问题
- 01-12Docker中运行PostgreSQL并推荐几款连接工具
- 01-12Docker核心原理之 Cgroup详解


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-23linux中ftp无法访问怎么办
- 12-11docker存储目录迁移示例教程
- 12-10docker start启动容器后仍然exit状态的解决
- 12-10Linux下如何安装Logstash
- 12-05Docker安装Jenkins全过程
- 01-05Shell脚本去重的几种方法实例
- 12-22kvm虚拟机配置NAT端口转发的实现方法
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法




