整個項目流程和我目前公司部署類似,專門來學Jenkins-Pipeline語法的,jenkins安裝啥的以後需要了再補充吧。
參考鏈接:https://www.bilibili.com/video/BV1kJ411p7mV?p=92&vd_source=510ec700814c4e5dc4c4fda8f06c10e8
🔥1. 基本概念
1.1. Pipeline
1.1.1 基本簡介
pipeline是groovy語言開發,用於構建jenkins發佈流程,一般放在項目目錄下,也可以放在jenkins網站裏。一般用聲明式pipeline(語法是stages),也有腳本式pipeline(語法是node)
1.1.2 構建觸發器
可以利用jenkins網站裏面的觸發器來保證項目順序打包構建:A必須比先快。也可以定時保證項目的構建
1.2 SonarQube
1.2.1 基本概念
(sonar酷ben)代碼審查工具(感慨,2年前原公司用的軟件,沒想到現在又遇到了)
1.2.2 基本安裝
1.2.3.1 安裝流程
參考博客:http://static.kancloud.cn/guanfuchang/sonar/908140
查看mysql容器IP:
1.2.3 整合流程
1.3 Docker
1.3.1 DockerFile基本命令
1.3.2 Docker-個人項目
-
編寫Dockerfile,上傳個人項目jar包
-
#利用jdk啓動外部入參傳入的參數,打包啓動app.jar FROM openjdk:8-jdk-alpine ARG JAR_FILE COPY ${JAR_FILE} app.jar EXPOSE 8081 ENTRYPOINT ["java","-jar","/app.jar"]
-
-
把上面命令打包成一個個人鏡像
-
#傳入項目jarz包名,打包成一個鏡像,dockerfile文件從當前目錄找 docker build --build-arg JAR_FILE=mybatisplus-0.0.1-SNAPSHOT.jar -t mybatisplus:v1 .
-
-
創建鏡像並啓動
-
docker run -di -p 8081:8081 mybatisplus:v1
-
1.4 Habor
用於管理上面的Docker鏡像
🔥2. 總體流程
2.1 流程描述
1. 開發提交代碼到Gitlab中
2. Jenkins網站配置拉取代碼地址、項目目錄下的jenkins腳本。
1. 當在jenkins構建時,就會使用jenkins腳本構建鏡像並推送到Harbor鏡像倉庫
2. jenkins構建的時候,也可以順便把項目推送給SonarQube進行代碼審查(sonar文件、dockerfile文件、jenkins文件都可以放在項目目錄下,代碼使用dockerFile插件也可以代替jenkins中寫的docker打包命令,但是dockerFile文件依然要有。jenkins腳本中自定義變量來自deploy.yml或者系統環境變量)
3. 後面由運維從Harbor拉取鏡像,刪除原始鏡像原始容器並構建容器啓動。