jenkins+maven+docker+gitlab自動化構建部署

背景:docker搭建 jenkins,通過其自帶git把源碼拉取到jks(jenkins簡稱)workspace,進行build執行mvn打包編譯,然後通過ssh遠程鏈接到目標機器(上傳打好jar/war到目標機器的掛載目錄),執行指令把jar/war copy/mv到目標目錄下執行docker restart name (其服務也是通過docker-create-java創建的實例 )。

爲了更好的寫這個教程,我逐步完成最終目標,將目標拆分成3個部分。
- 第一步:gitlab代碼服務器,提交maven項目(見docker搭建gitlab博文)
- 第二部:docker安裝jenkins,配置環境,拉取github工程,構建war/jar包
- 第三步:構建的war/jar包自動上傳推送到遠程服務器中
- 第四步:執行docker restart 指令啓動服務

ps:不適用 宿主機上搭建jenkins服務,定時(或githook)的方式從github上拉取maven工程,構建jar/war包。使用docker構建image,推送到docker registry上。

- 第二部

搭建過程 網上盡有不再累述 簡要:docker pull jenkins/jenkins:latest

docker run -itd --privileged --name="$1" --hostname="$1" -p "$2":8080   -p "$3":50000 --log-driver=json-file -v /alex/jenkins/"$1"/config/:/var/jenkins_home -v /alex/jenkins/"$1"/logs/:/var/jenkins_home/logs/tasks/ -v /alex/jenkins/"$1"/workspace/:/var/jenkins_home/workspace/ -v /alex/jenkins/maven/:/usr/local/maven -v /usr/local/jdk8:/usr/local/jdk8 jenkins/jenkins:latest

注意兩個點

1:安裝默認英文版:需中文版的把jks的workspace (hudson.model.UpdateCenter.xml)

2:安裝提示默認offline是因爲(default.json)connectionCheckUrl是Google.com ;(國內懂的吧)還能怎麼樣呢,當然是原諒它了。身爲程序員,在程序裏埋個個把bug實在是稀鬆平常的事情,畢竟是面向bug編程嘛。只要能及時發現並處理就ok;修改可以訪問了國內就baidu.com

 - 第三步 注意: 這個插件是不在默認安裝插件的範圍內的,需要先手動安裝下。

-----Publish Over SSH遠程部署

1.在系統管理中配置需要遠程部署的服務器

在項目中使用插件(構建中使用的話名爲Send files or execute commands over SSH,構建後使用的話名爲Send build artifacts over SSH)。

在這裏插入圖片描述

Name :選擇需要的服務器
Source files: 需要上傳的文件。支持通配符。需要特別注意的是,需要上傳的文件必須位於當前的workspace中,否則會上傳失敗。
Remove prefix:移除指定前綴。例如我指定了移除test,這個文件會直接上傳到/home/test/html/下,否則會上傳到/home/test/html/test下。
Remote directory:遠程目錄。注意! 此目錄是基於之前設置服務器時設置遠程目錄的,即這裏的目錄是位於服務器設置目錄下的相對目錄。
Exec command:需要執行的命令。這裏不做太多說明。
 

2:maven配置

2全局配置

三:構建環境

Pre Steps:構建前的操作,可以增加執行shell,配置腳本echo "Pre Steps腳本啓動成功",此內容會在構建控制檯中打印出來
Build:Root POM配置pom.xml(要構建的工程必須是maven,有pom文件),Goals and options配置clean package(也就是mvn的構建命令)
Post Steps:構建完成後的操作,可以增加執行shell,配置腳本echo "Post Steps腳本啓動成功${WORKSPACE}",${WORKSPACE}爲jenkins的環境變量。上方的3個單選項分別代表構建成功後執行、構建成功或不穩定執行、總是執行
————————————————
-ending

發佈了79 篇原創文章 · 獲贊 29 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章