天天看點

jenkins和docker實作自動化建構部署應用場景操作步驟

應用場景

程式員開發應用,開發後需要送出svn,然後從svn拉取代碼,進行建構,釋出到tomcat中,釋出,然後看呈現效果,這樣的工作是頻繁反複的在進行的,浪費了程式員的大量時間,那麼能不能把這些工作自動化呢,隻需要程式員更新代碼到svn,然後自動的建構,釋出,呈現效果,當然是可以的,通過jenkins和docker來實作。

操作步驟

1. 概述

開發者的工作大概流程是,eclipse編寫代碼,送出代碼到svn,然後進行編譯,打包,測試,部署,釋出。

這其中很多重複的工作,影響開發人員的情緒,應當讓開發者隻重視代碼階段,後面的内容不用去理會,隻要編寫代碼,送出代碼,然後就能打開頁面看到效果,那是最好的。

這就需要自動化建構,jenkins就是很好的自動化建構工具。

2. 自動化流程

具體流程如下:

  • 1.編寫代碼,修改代碼
  • 2.送出代碼到svn
  • 3.Jenkins自動檢測到svn代碼更新,從svn拉取最新代碼
  • 4.Jenkins自動編譯
  • 5.Jenkins自動打成tomcat下能運作的war包
  • 6.Jenkins自動上傳war包到docker主控端目錄
  • 7.Jenkins自動建構web容器鏡像,包含項目demo
  • 8.Jenkins自動啟動鏡像,變成容器,映射端口
  • 9.最後就有項目運作的界面提供了

3. 環境準備

3.1 jenkins

Jenkins簡單點說就是一個war包。一個自動化服務,提供各種插件內建。 jenkins下載下傳位址

Jenkins部署有兩種方法(可以裝到windows或者linux,實驗中以windows的方式一為例):

Jenkins是用Java語言開發的系統,首先要确定伺服器上已經安裝JDK或者JRE。

1.方式一

直接運作java –jar jenkins.war(注意jenkins.war得是絕對路徑,例如下圖所示),在浏覽器中輸入 http://localhost:8080 即可。
到此,jenkins安裝部署完畢,關于如何使用jenkins,下文詳細介紹。

2.方式二

把jenkins的war包拷貝到tomcat的webapps目錄下,啟動tomcat,通路位址: http://ip:8080/jenkins

3.2 maven

參照windows安裝maven博文

3.3 svn

參照svn如何使用的相關博文 以及 windows端安裝svn伺服器端的博文

3.4 jdk

參考windows安裝jdk博文

3.5 docker

參考docker安裝使用博文

4. 基礎配置

4.1 jenkins配置

  • 首先需要進入jenkins主界面,安裝必須要的插件。
進入插件頁面,選擇可選插件,搜尋ssh,安裝SSH plugin和Publish Over SSH插件,由于實驗已經安裝過,是以圖中沒有顯示了。
  • 然後回到主界面,進行系統設定。
配置maven configuretion,加上本地maven安裝位址,指向settings檔案。
jdk配置,指向本地jdk安裝目錄。
Maven配置,指向本地maven安裝路徑。
配置jenkins location,配置管理者郵箱。
配置郵件通知,需要郵箱開啟pop3,smtp,可以測試驗證。後面配置郵件通知時需要用到。
配置Publish over SSH。這裡配置後才能在配置目标容器環境時,選擇到建構完成後釋出到的目标容器。
最後應用,儲存。

5.配置自動化

5.1 編寫代碼

這裡需要基于maven建構的工程。

5.2 送出代碼至svn

右擊項目,選擇team,送出,到svn伺服器的某個位址,實驗中送出到如下目錄:
需要在svn下建立mavenproject檔案夾,具體操作參考3.3。

5.3 建立jenkins項目連接配接svn

點選界面左側建立,項目名稱可以随意命名,選擇maven項目:
選擇源碼位址,這功能可以讓jenkins可以從svn上拉取代碼。
Repository URL擷取方式:

5.4 配置建構任務

該功能,jenkins可以檢測svn代碼,如果發生變化,那麼立即自動執行建構:

5.5 配置建構參數

該功能,jenkins可以自動給maven項目打包

5.6 郵件通知

該功能,jenkins建構過程中,可以向指定郵箱發送郵件,提示建構狀況。

5.7 配置目标容器環境

選擇send build artifacts over SSH,該功能可以實作将本地打包的war包,ssh到指定伺服器的目錄中,并且能在伺服器上執行腳本。

腳本如下:

docker rm -f  microframe       #删除已建的容器,防止容器名,端口沖突
 sleep 1
 cd /Dockerfile_tomcat
 docker build -t xubin/website:v1 .    #根據dockerfile生成web鏡像
 sleep 1
 docker run -d -p 8080:8080 --name microframe xubin/website:v1    #運作鏡像生成容器           
這樣jenkins上就操作完畢了。

5.8 生成docker執行個體

在docker主控端輸入如下指令:
# git clone https://git.oschina.net/bingoxubin/Dockerfile_tomcat.git           
執行完畢後,打開虛拟機上的/Dockerfile_tomcat目錄,修改該目錄下的Dockerfile檔案,加入如下一行:
COPY  microframe-0.0.1.war  /opt/apache-tomcat/webapps/microframe-0.0.1.war           

5.9 測試

當我們修改eclipse上的代碼,然後送出到svn:

等幾分鐘就能看到結果。

可以看到jenkins自動開始建構了:

通路頁面:
最後可以看出,生成了指定的容器。