1.安裝docker
https://blog.csdn.net/m0_37970699/article/details/103677596
Docker 相關命令:
https://blog.csdn.net/m0_37970699/article/details/105845267
2.docker 安裝jenkins
在home目錄下創建jenkins的工作空間掛載目錄
mkdir jenkins
賦權 chmod 777 jenkins
然後,創建並運行jenkins容器
docker run -it --privileged -p 8000:8080 -p 50000:50000 -p 8001:8001
-v /home/jenkins:/var/jenkins_home 鏡像id /bin/bash
解釋命令:
--privileged 使容器繼承宿主登錄賬號權限,用來同步工作空間數據
3個端口映射 由於宿主機8080被佔用所以映射成了8000,你也可以映射成其他的,
容器的8080,50000兩個端口是容器中jenkins使用的,8001是我們預留的測試項目的端口,我們這次jenkins與項目在同一個服務器下.
-v就是數據卷掛載,將容器中jenkins的工作空間掛載到宿主機上便於操作和備份.
然後,打開瀏覽器 ip:8000 可以看到jenkins頁面說明部署成功
之後就是jenkins的基本的設置包括賬戶名,密碼.這沒什麼好說的.主要是插件的安裝:
在第一次進入jenkins時會讓我們選擇要安裝的插件,選擇右邊的就行了,你也可以根據自己的情況刪去一些(如果jenkins版本較低,需要更新一下jenkins,也是在manage jenkins裏面)
GitHub Integration Plugin,Maven Integration plugin,
Pipeline,Pipeline Maven Integration Plugin, Pipeline: GitHub
我們最終的目的是實現 當我們更新代碼到github上時,jenkins自動將新的版本進行重新部署,不需要我們的任何操作.
3.開始基本的手動部署github+maven+jenkins 流程.
jenkins 通過github拉去最新代碼----->通過maven打包--------->通過shell腳本部署啓動
首先,github創建倉庫,在本地建一個springboot web項目並上傳到該倉庫下,
https://github.com/ToBeSupJavaMan/testjenkins
if (ps -ef| grep java|grep 8001)
then (ps -ef| grep java|grep 8001| awk '{print $2}'|xargs kill -9)
腳本的主要意思是殺掉8001端口服務的進程(也就是我們即將要部署的項目,這樣我們就可以重複部署,否則第一次部署之後,再次部署時會報端口已經被佔用的錯)
export BUILD_ID=dontKillMe //設置cookie ,否則項目啓動之後,jenkins會自動殺掉
JENKINS_NODE_COOKIE=dontKillMe nohup java -jar /var/jenkins_home/workspace/mavenTest/target/jenkinsboot-0.0.1-SNAPSHOT.jar --server.port=8001 &
後面的內容就是找到我們maven打包後的jar的地址,然後後臺啓動就行了.
如果不知道maven打包後的地址,可以先不寫Poststep,直接走下面的流程,在構建的時候,控制檯可以找到maven的打包地址,你也可以進到docker容器裏面查看/var/jenkins_home/workspace,一般就在這個目錄下
等進度條走完,前面的圖標變成藍色表示已經構建成功,如果你想看構建步驟,點擊 項目構建的次數,當前我構建了4次,是 #4,然後出現下拉框,點擊控制檯即可,或者直接點進去,