Docker结合Jenkins构建持续集成环境
持续集成是什么

持续:完成一个新功能就向下一个环节交付,不断发现问题,解决问题。
集成:研发人员提交新代码到主干仓库,进行构建、部署、测试,不断做集成,修正集成结果。
部署:将项目发布到测试环境、预生产环境或生产环境。
交付:将最终产品发布到预生产环境或生产环境,给用户使用。
持续集成(Continuous Integration):代码合并、构建、部署、测试都在一起,不断地执行这个过程,并对结果反馈。
持续交付(Continuous Delivery):将最终产品发布到生产环境,给用户使用。
持续部署(Continuous Deployment):将新需求部署到生产环境。
持续集成相关工具
Jenkins :一个开源的持续集成工具,提供软件版本发布、自动测试等一系列流程及丰富的插件。
Maven:一个自动化构建工具,通过一段描述来管理项目的构建,比如编译、打包等逻辑流程。
SVN/Git:源代码版本管理工具。
Docker:容器化技术;打包项目环境与快速部署。
Docker+Jenkins+Maven+SVN搭建持续集成环境
发布流程设计


环境说明

操作系统:Ubuntu16.04_x64 Maven3.5Tomcat8JDK1.8Jenkins2.7 Docker CE 17.06
SVN安装配置及简单使用
# apt-get install subversion# mkdir /home/svn# svnadmin create /home/svn/repos# vi /home/svn/repos/conf/svnserve.confanon-access = none auth-access = write password-db = passwd authz-db = authz# vi /home/svn/repos/conf/passwd[users]test = 123456# vi /home/svn/repos/conf/authz [repos:/]test = rw# svnserve -d -r /home/svn仓库地址:svn://192.168.1.151/repos
Docker镜像仓库搭建
# docker run -d \-v /opt/registry:/var/lib/registry \-p 5000:5000 \--restart=always \--name registry \ registry在部署节点配置Docker可信任私有仓库:# vi /etc/docker/daemon.json{"registry-mirrors": ["http://04be47cf.m.daocloud.io"],"insecure-registries":["192.168.0.151:5000"]}上传基础镜像到私有仓库:# docker build -t 192.168.0.151:5000/lnmp-nginx:base .# docker build -t 192.168.0.151:5000/lnmp-php:base .# docker push 192.168.0.151:5000/lnmp-nginx:base# docker push 192.168.0.151:5000/lnmp-php:base
部署节点安装Docker与Docker-Compose及配置普通用户sudo
1.安装Docker安装文档:https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu2.安装Docker-Compose# curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` -o/usr/local/bin/docker-compose# chmod +x /usr/local/bin/docker-compose3.赋予用户sudo权限# vi /etc/sudoersuser ALL=(ALL) NOPASSWD:ALL
Jenkins安装
安装包下载:http://mirrors.jenkins.io/war-stable/ http://maven.apache.org/download.cgihttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html配置JDK和Maven环境变量:# tar zxvf jdk-8u45-linux-x64.tar.gz# mv jdk1.8.0_45 /usr/loca/jdk.18# tar apache-maven-3.5.0-bin.tar.gz# mv apache-maven-3.5.0 /usr/local/maven3.5# vi /etc/profileJAVA_HOME=/usr/local/jdk1.8 CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar MAVEN_HOME=/usr/local/maven3.5 PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATHexport JAVA_HOME CLASSPATH MAVEN_HOME PATH# tar zxvf apache-tomcat-8.0.46.tar.gz# cd apache-tomcat-8.0.46/webapps# rm -rf ./*# unzip /root/jenkins.war -d ROOT# ../bin/startup.sh
Jenkins基本配置
系统管理->系统设置:主要配置workspace目录,全局环境变量,邮件通知,其他插件配置等。系统管理->Global Tool Configuration:主要配置JDK、Maven等工具。在系统设置里面先配置好SSH连接各个部署节点信息,在创建项目中使用。
文章转载自程序员雨衣,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




