持續集成的工具備不少,例如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"]