jenkins 自动构建集成系统
docker 虚拟化容器
实际集成流程 git上某分支提交代码 ----> jenkins 检测到该分支代码发生变动,触发构建项目,下载分支代码,根据编辑的Dockerfile 生成docker镜像,从镜像生成容器 --> 测试 --> 测试成功提交master分支 --->
jenkins 检测到master分支变动 ---> 触发部署流程 ---> jenkins 部署到生产环境节点 ---> 上线
在提交到master分支前,可以很方便的实现各类测试,完全自动化,能够在几分钟之内构建出测试环境进行测试。
上线自动化
实验:
准备环境: 服务器 centos 6.5
安装docker yum install docker -y
安装jenkins
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.keyyum install jenkins
jenkins安装好相应插件
构建一个项目,并增加git代码地址
构建触发器 这里使用当有push代码的时候触发
构建环境未选择,可根据需求选择,这个对于实际构建关系不大
接下来重点,实现构建镜像和容器
dcker会根据在git的 php-fpm目录下的Dockerfile 构建镜像,实现准备一个基础镜像,可以在图片中的git地址获取代码
构建容器的时候,是基于构建的body221/nginx:v1 镜像将本机/mnt/myApp 目录映射到容器的/app 目录,/app在nginx配置文件值已经设置为网站跟目录,这样可以直接修改本机目录实现对容器的目录修改,容器nginx的80端口映射到主机的7071,可以直接在浏览器中访问
到此构建结束,此处并没有使用docker的jenkins镜像,直接基于主机的配置,本机的docker.sock 需要赋予jenkins用户的执行权限,否则构建时候报错,没权限。
如果使用docker的jenkins镜像,集成后输出构建的镜像,在通过镜像输出容器进行测试。