学习--手把手指导搭建基于Docker+Jenkins+Git的集成发布环境视频课程--遇到的坑
最近在学习部署管道的概念,看到一个好的教程:
手把手指导搭建基于Docker+Jenkins+Git的集成发布环境视频课程
其目标就是实现下图:
在做的过程中,我的虚拟机使用的是centos,在系统配置和执行过程中遇到了好多坑,总结如下:
坑一:
在centos6.5里面,要执行 yum -y install docker-io 而不是 yum -yinstall docker
如果已经安装了docker,再安装dockerio会报错:file /usr/bin/docker frominstall of docker-io-1.7.1-2.el6.x86_64 conflicts with file from package docker-1.5-5.el6.x86_64
解决方法:
先删除yum–y remove docker,再重新安装
坑二:
安装完docker后,执行service dockerstart,之后之后servicedocker status
会报错:docker已死,但pid 文件仍存
解决方法:
yum installdevice-mapper-event-libs
之后再重新servicedocker restart
service docker status可见正常运行之后通过docker images命令,查看images镜像
docker ps -a 查看所有镜像
坑三:
将jenkins部署脚本放到docker中,需要给脚本授权,使其具备可执行权限
chmod +x /data/dockerfiles/scripts/deploy.sh
坑四:
jenkins来读取docker中保存的部署脚本,报错:
sh脚本异常:/bin/sh^M:badinterpreter: No such file or directory
原因:
在linux中执行.sh脚本,如果.sh脚本是在windows系统中编辑的,可能会有不可见字符,在linux下会报错
解决方法参考:sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
坑五:
进行jenkins全局配置的时候,需要连接到码云,public的project可以,而private的project即便指定了credential还是连接不上,显示http401 no authorized。
原因:git如果是通过yum安装的,版本是1.7.1,版本太低
解决方案:Centos 6.5升级Git到Git2.1.2