DevOps課程-Jenkins 8
前面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的同個檔案內:
這邊事後補充插入↓(其實上面的也可以執行)
後來發現這樣才更對(多了script的階層):
這邊事後補充插入↑
完工後可以嘗試執行看看這個Job
後面就會看到:
直接到dockerhub上面看結果:
仔細看到:
接著也可以將一些流程打包在groovy script內
所以撰寫一個script.groovy檔出來:
放到該branch內:
改寫既有的Jenkinsfile,裡面改為呼叫上述groovy的script:
一樣commit到git上:
執行Jenkins Job:
過程我其實有一些語法格式錯誤到第5次才看到OK:
不過上面的code我都有重新修正過了沒問題!
並且使用script.groocy這樣的方式也是講師比較推薦使用的方式!
白天也有詢問社群的人,有的人會把Dockerfile & Jenkinsfile
與SouceCode放在同個Repository branch內
也有的會將其與SourceCode分開放不同Repo內