持续集成的工具备不少,例如Jenkins、Strider、Drone.io等。我自身接触Jenkins比较多,在这里我就选选择Jenkins、Github、Docker来实现简单的实现持续集成。linux
Github你们都应该很是了解一个很是好用的开源的代码托管平台,本文使用的示例源码就托管在github。git
Docker则是一个开源的应用容器引擎,让开发者能够打包他们的应用以及依赖包到一个可移植的容器中。github
运行环境 ubuntu 14.04web
1、安装Jenkinsdocker
ubunut下能够经过apt-get方式安装Jenkins. shell
sudo apt-get update sudo apt-get install jenkins
Jenkins默认使用的是8080端口,安装完成后浏览器访问 http://192.168.0.1:8080(ip换成你本身的)看到下面的页面证实安装成功.apache
Jenkins安装过程当中会在系统中默认建立一个Jenkins用户,Jenkins会使用该用户来执行构建脚本。由于Jenkins用户权限问题会致使一些未知的错误.建议使用root用户来执行Jenkins构建脚本.ubuntu
能够经过修改/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
二、安装dockertomcat
ubunut下也能够经过apt-get方式安装docker. 还有不少安装方式具体能够参考下docker官方文档https://docs.docker.com/engine/installation/linux/ubuntulinux/
sudo apt-get update sudo service docker start
3、安装Jenkins github插件
由于选择的是github做为代码托管工具,须要给jenkins安装Github Plugin。
安装步骤: 访问Jenkins--> 系统管理 -->管理插件-->安装Github Plugin
配置github用户认证信息(必需要配置不然没法正常下载源码)
配置步骤: 系统管理 -->系统配置
点击ADD添加认证信息.
4、建立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 你能够看到示例项目已经部署成功.
5、示例代码.
示例代码地址: https://github.com/silvasong/CIJD ,若是不想本身新建项目能够fork。
另外介绍下dockerfile文件,了解docker都应该知道dockerfile是构建docker镜像的关键.
FROM ubuntu:latest MAINTAINER Silva Song "silva.song@aliyun.com" #安装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"]