学习--手把手指导搭建基于Docker+Jenkins+Git的集成发布环境视频课程--遇到的坑

最近在学习部署管道的概念,看到一个好的教程:

手把手指导搭建基于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可见正常运行

参考:centos 6.5安装docker报错

之后通过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

参考:Centos 6.5升级Git到Git2.1.2的步骤