Jenkins+Github+Docker+Maven实现持续集成

     持续集成的工具有很多,例如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+Github+Docker+Maven实现持续集成_第1张图片

       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+Github+Docker+Maven实现持续集成_第2张图片

四、创建Jenkins作业

       1)  单击新建连接

       2)填写作业名称、选择 构建一个自由风格的软件项目 .    

           Jenkins+Github+Docker+Maven实现持续集成_第3张图片

        3) 添加GitHub project

         Jenkins+Github+Docker+Maven实现持续集成_第4张图片

       4) 配置源码管理

           源码管理方式选择git,添加github仓库和认证信息.

           Jenkins+Github+Docker+Maven实现持续集成_第5张图片

      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"]

你可能感兴趣的:(github,maven,Jenkins,docker)