DevOps課程-Jenkins 8

建立完整pipeline Job

ZONGRU Li
Jan 18, 2022

前面Jenkins筆記3有使用freestyle方式

建立出完整的打包佈署image(到docker hub)流程

這邊將改以pipeline方式實現一樣的結果

(i.e.要撰寫一份完整的pipeline code)

這邊重新建立一個新的pipeline:

並且在複製一個對應的github專案的branch

之前抓下來的在本機上的Repo內容:

用git bash進去查看

先在本機的local Repo內切換到新的branch,執行:

git checkout -b {指定的名稱,這邊指定用新的名稱jenkins-job-pipeline}

接著將內容直接推上github執行:

git push -u origin {上面定義的新branch名稱}

然後就看到了:

接著要重構pipeline,從一份基本的pipeline code開始填寫:

1.首先將第一個步驟stage改為build jar,但是需要引入Maven工具:

如同前篇提到的,需要填入我在工具設定裡面,針對Maven定義的名稱

2.接著還要再多一步,建造打包docker image:

前面已經有先建立登入docker hub的憑證資訊了,將會透過語法拿來使用:

並且確認目前dockerhub上面的私有庫只有以下內容:

目前完整如下:

將這個Jenkinsfile內容貼到新建的branch的同個檔案內:

放好後commit!

這邊事後補充插入↓(其實上面的也可以執行)

後來發現這樣才更對(多了script的階層):

這邊事後補充插入↑

完工後可以嘗試執行看看這個Job

後面就會看到:

成功!!

直接到dockerhub上面看結果:

仔細看到:

接著也可以將一些流程打包在groovy script內

所以撰寫一個script.groovy檔出來:

放到該branch內:

記得commit!

改寫既有的Jenkinsfile,裡面改為呼叫上述groovyscript:

一樣commitgit上:

執行Jenkins Job:

過程我其實有一些語法格式錯誤到第5次才看到OK:

不過上面的code我都有重新修正過了沒問題!

並且使用script.groocy這樣的方式也是講師比較推薦使用的方式!

白天也有詢問社群的人,有的人會把Dockerfile & Jenkinsfile

與SouceCode放在同個Repository branch內

也有的會將其與SourceCode分開放不同Repo內

參考課程reference

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet