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
3.3 svn
3.4 jdk
3.5 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自動開始構建了:
訪問頁面:
最後可以看出,生成了指定的容器。