獲得jenkins 鏡像
搜索jenkins相關鏡像
docker search jenkins
可以看到官方提供的鏡像有OFFICAIAL標識
通常也可以到docker store搜到所需鏡像的使用說明 我是鏈接
下載鏈接
docker pull jenkins/jenkins
啟動鏡像
docker run -d -p 8080:8080 -p 50000:50000 -v /root/docker/jenkins:/var/jenkins_home jenkins/jenkins:latest
-d的意思是后臺運行
-v + 本地路徑:容器路徑 :示例為將容器的/var/jenkins_home路徑掛載到本地/jenkins 這么做的原因是/var/jenkins_home 為jenkins的運行文件目錄,保存運行相關數據,如果不掛載到本地,當前鏡像進程結束后不屬于鏡像的文件就會丟失。可以理解為鏡像本身是不變的,每次運行都是從頭開始。
登錄并初始化
瀏覽器通過地址:8080端口訪問
提示輸入秘鑰
由于是后臺啟動鏡像,日志沒有輸出到終端內,可以從啟動日志中查詢秘鑰:
1:查詢當前運行鏡像的ID
查詢狀態命令:
docker ps
如果查詢不到對應進程,可能失敗
docker ps -a
查看所有,包含掛掉的鏡像
然后使用
docker logs 鏡像id
查看日志,如果發現是沒有目錄權限造成
sudo chown -R 1000:1000 /home/docker/jenkins
修改權限再啟動
2:查詢日志命令
docker logs -f -t --since="2017-05-31" ${id}
根據上一步查詢到的ID:輸入命令
docker logs -f -t --since="2017-05-31" 2833f00d6755
可以秘鑰
填入秘鑰后提供初始化選項,我選擇install suggested plugin
接著會進行一系列安裝,完畢會要求你填寫管理員賬戶信息
填寫后即可啟動:
安裝全局工具
JDK
git
maven
點擊save保存變更
安裝maven項目插件
安裝通過SSH發布插件
用于打包結束后把jar包遠程發布到運行服務器用(注:這只是運行應用的一種辦法)
在插件管理中安裝該插件:
在系統設置里配置遠程服務器
配置遠程連接屬性:
name:后續指定連接服務器
hostname:遠程服務器ip
username:用戶名
passphrase:密碼
配置完后記得保存。
創建一個maven 項目
配置代碼來源:
示例選擇git
首先填寫用戶名密碼
然后填寫url
構建配置
運行工程jar包
這里使用的通過SSH方式連接一個服務器,然后運行一個腳本 :
腳本很簡單:大致為查詢已經運行的服務進程號,如有則刪除,然后運行打包出來的這個jar包。spring boot集成了web容器,所以可以直接通過jar命令啟動
kill -9 `ps aux | grep com.progen.Application | grep -v grep | awk '{print $2}'`
cp /dev/null nohup.out
nohup /jenkins/tools/hudson.model.JDK/bin/java -jar /jenkins/workspace/test/target/progen-0.0.1.jar com.progen.Application &
exit 0
其實是本地運行,就“偷懶”使用jenkin安裝的那個( /jenkins/tools/hudson.model.JDK/bin/java),而/jenkins/workspace/test/target/為打包的路徑,所以在source files 和Remote directory沒有配置,既沒有吧本地的jar包傳輸到遠程目錄。
僅配置運行腳本
這里運行的時候需要加上nohup ,不然運行結束后jenkins沒有判斷為成功結束,構建結果會顯示為超時而不是成功。