jenkins和docker實現自動化構建部署-轉 jenkins

jenkins

應用場景

程序員開發應用,開發後需要提交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    #運行鏡像生成容器
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

這樣jenkins上就操作完畢了。

5.8 生成docker實例

在docker宿主機輸入如下命令:

 # git clone https://git.oschina.net/bingoxubin/Dockerfile_tomcat.git
  • 1

這裏寫圖片描述

執行完畢後,打開虛擬機上的/Dockerfile_tomcat目錄,修改該目錄下的Dockerfile文件,加入如下一行:

COPY  microframe-0.0.1.war  /opt/apache-tomcat/webapps/microframe-0.0.1.war
  • 1

5.9 測試

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

這裏寫圖片描述

等幾分鐘就能看到結果。

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

這裏寫圖片描述

這裏寫圖片描述

訪問頁面:

這裏寫圖片描述

最後可以看出,生成了指定的容器。

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章