持续集成的工具有很多,例如Jenkins、Strider、Drone.io等。我自身接触Jenkins比较多,在这里我就选选择Jenkins、Github、Docker来实现简单的实现持续集成。
Github大家都应该非常了解一个非常好用的开源的代码托管平台,本文使用的示例源码就托管在github。
Docker则是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中。
运行环境 ubuntu 14.04
一、安装Jenkins
ubunut下可以通过apt-get方式安装Jenkins.
sudo apt-get update sudo apt-get install jenkins
Jenkins默认使用的是8080端口,安装完成后浏览器访问 http://192.168.0.1:8080(ip换成你自己的)看到下面的页面证明安装成功.
Jenkins安装过程中会在系统中默认创建一个Jenkins用户,Jenkins会使用该用户来执行构建脚本。因为Jenkins用户权限问题会导致一些未知的错误.建议使用root用户来执行Jenkins构建脚本.
可以通过修改/etc/default/jenkins 让默认的用户为root。
# user and group to be invoked as (default to jenkins) #JENKINS_USER=$NAME JENKINS_USER=root #JENKINS_GROUP=$NAME JENKINS_GROUP=root
二、安装docker
ubunut下也可以通过apt-get方式安装docker. 还有很多安装方式具体可以参考下docker官方文档https://docs.docker.com/engine/installation/linux/ubuntulinux/
sudo apt-get update sudo service docker start
三、安装Jenkins github插件
因为选择的是github作为代码托管工具,需要给jenkins安装Github Plugin。
安装步骤: 访问Jenkins--> 系统管理 -->管理插件-->安装Github Plugin
配置github用户认证信息(必须要配置否则无法正常下载源码)
配置步骤: 系统管理 -->系统配置
点击ADD添加认证信息.
四、创建Jenkins作业
1) 单击新建连接
2)填写作业名称、选择 构建一个自由风格的软件项目 .
3) 添加GitHub project
4) 配置源码管理
源码管理方式选择git,添加github仓库和认证信息.
5)增加构建步骤 execute shell
通过shell脚本来实现docker镜像的创建,以及使用Maven打包项目war包,启动tomcat服务器.
docker build -t cijd . #构建cijd镜像 if [ -n $(awk $(docker ps -a -q))] then docker rm -f $(docker ps -a -q) #删除历史纪录 fi docker run -d -p 8888:8080 cijd #部署镜像指定宿主机8888端口转发到docker容器中tomcat 8080端口
6)运行一次构建
点击立即构建,控制台输出如下内容表示构建成功.
---> 169dc0859a28 Step 18 : EXPOSE 8080 ---> Using cache ---> 876fbcc5db60 Step 19 : CMD ./var/tmp/tomcat/apache-tomcat-8.0.33/bin/catalina.sh run ---> Using cache ---> 02300f000731 Successfully built 02300f000731 + docker ps -a -q + awk 42ee1ea78bdf + [ -n ] + docker ps -a -q + docker rm -f 42ee1ea78bdf 42ee1ea78bdf + docker run -d -p 8888:8080 cijd 829e25f7bf0e32720f2cf292d48dc74aa3fef6e02271911ba6015c8421e5ee08Finished: SUCCESS
通过访问 http://192.168.0.1:8080/CIJD 你可以看到示例项目已经部署成功.
五、示例代码.
示例代码地址: https://github.com/silvasong/CIJD ,如果不想自己新建项目可以fork。
另外介绍下dockerfile文件,了解docker都应该知道dockerfile是构建docker镜像的关键.
FROM ubuntu:latest MAINTAINER Silva Song "[email protected]" #安装JDK RUN apt-get update RUN apt-get install -y openjdk-7-jdk && apt-get install -y wget #安装tomcat RUN mkdir /var/tmp/tomcat RUN wget -P /var/tmp/tomcat http://mirrors.noc.im/apache/tomcat/tomcat-8/v8.0.33/bin/apache-tomcat-8.0.33.tar.gz RUN tar xzf /var/tmp/tomcat/apache-tomcat-8.0.33.tar.gz -C /var/tmp/tomcat RUN rm -rf /var/tmp/tomcat/apache-tomcat-8.0.33.tar.gz #安装maven RUN mkdir /var/tmp/maven RUN wget -P /var/tmp/maven http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz RUN tar xzf /var/tmp/maven/apache-maven-3.3.9-bin.tar.gz -C /var/tmp/maven RUN rm -rf /var/tmp/maven/apache-maven-3.3.9-bin.tar.gz #设置maven环境变量 ENV MAVEN_HOME=/var/tmp/maven/apache-maven-3.3.9 ENV PATH=$MAVEN_HOME/bin:$PATH #打包示例项目并拷贝到tomcat webapps目录 RUN mkdir /var/tmp/webapp ADD ./ /var/tmp/webapp RUN cd /var/tmp/webapp && mvn package && cp /var/tmp/webapp/target/CIJD.war /var/tmp/tomcat/apache-tomcat-8.0.33/webapps EXPOSE 8080 #启动tomcat服务器 CMD ["./var/tmp/tomcat/apache-tomcat-8.0.33/bin/catalina.sh","run"]