首頁 > 軟體

教你使用Jenkins整合Harbor自動釋出映象

2022-04-03 13:00:32

1、概述

在實際生產中,如果進行手動釋出映象到 Harbor,那麼實在太 low 了。實際中,一般會結合 Jenkins 的流水線,進行自動構建和釋出。

大致流程說明:

  • 開發人員每天把程式碼提交到 Gitlab 程式碼倉庫
  • Jenkins 從 Gitlab 程式碼倉庫中拉取專案原始碼,進行編譯並打成 jar 包;然後構建成 Docker 映象,將映象推播到
  • Harbor 私有映象倉庫
  • Jenkins 傳送 SSH 遠端命令,讓生成部署伺服器從 Harbor 私有映象倉庫中拉取映象到本地;然後建立容器
  • 最後使用者可以存取到容器

2、Jenkins 指令碼式釋出映象

新建構建任務

設定程式碼倉庫

上傳成果物到伺服器

因 Jenkins 部署在 Windows 作業系統,所以採用批次處理指令碼。請根據 Jenkins 部署的作業系統的情況使用 batch command 或者 shell。

C:jenkinspscp.exe -r -l root -pw root %WORKSPACE%/zwt-pestilence/zwt-pestilence-web/target/zwt-pestilence-web-RELEASE.jar 
192.168.10.8:/home/huangjinjin/software/springdocker

釋出映象

cd /home/huangjinjin/software/springdocker
docker build -t zwt:v1.0 .
docker login -u admin -p Harbor123 192.168.10.8
docker tag zwt:v1.0 192.168.10.8/omg/zwt:v1.0
docker push 192.168.10.8/omg/zwt:v1.0

建立 Dockerfile
構建後的 jar 上傳到如下路徑

/home/huangjinjin/software/springdocker

所以在該路徑下建立 Dockerfile 檔案,內容如下:

FROM openjdk:8-jre-slim                       //指定jdk
MAINTAINER huangjinjin "huangjinjin@qq.com"   //作者和郵箱描述
ENV PARAMS=""                                 //賦值
ENV TZ=PRC                                    //賦值
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
WORKDIR /servers                              //建立軟連線 ,指定時區時間
ADD zwt-pestilence-web-RELEASE.jar app/zwt-pestilence-web-RELEASE.jar      //拷貝jar包
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /servers/app/zwt-pestilence-web-RELEASE.jar $PARAMS"]  //jar執行命令

Dockerfile 檔案的內容根據實際專案情況進行修改。

構建並驗證

登入 Harbor 檢視是否推播映象到 Harbor 映象倉庫成功

3、Jenkins 外掛式釋出映象

安裝 CloudBees Docker Build and Publish 外掛
Manage Jenkins -> Manage Plugins

新增憑證

Manage Jenkins -> Manage Credentials

建立一個 Harbor 的賬密憑證

構建增加 Docker Build and Publish

在點選高階選項中可以設定

  • Build Context:構建上下文路徑
  • Dockerfile Path:Dockerfile 檔案的路徑

根據實際情況設定,設定如下:

經過以上設定,即可進行 Jenkins 任務執行,構建映象,執行dockerfile時其實就已經將映象倉庫的jar拷貝到了執行目錄下,然後使用指令碼在容器中啟動了映象jar,全自動,使用者可以直接存取。

到此這篇關於Jenkins 整合 Harbor 自動釋出映象的文章就介紹到這了,更多相關Jenkins Harbor 映象內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com