基礎架構之持續整合
這篇文章通過gitlab來實現專案的持續整合,主要介紹從開發提交程式碼到編譯、打包、生成映象的過程,我專案型別為java的spring cloud,所以以此來介紹,實現目標如下圖所示。
(一) 環境要求
- Centos 7.5.1804
- Docker 18.06.1-ce
- gitlab/gitlab-ce
- gitlab/gitlab-runner
(二) 專案設定
- 修改專案pom.xml
a) 新增Maven的docker外掛,如下所示
b) 注意事項
i. 設定goal到maven的phase,當然你可以繫結多個goal,我這裡是把build及push分開來設定,這個在gitlab ci中會分到不同的階段。
ii. JAR_FILE的設定,這個是傳給Dockerfile使用的,這裡是打包後的Jar包。
iii. Username、password、useMavenSettingsForAuth 賬號設定
- 新增Dockerfile
a) 這是映象生成的依據,內容如下所示
其中JAR_FILE為POM中設定要傳遞的標籤名,基礎映象為java:8,其它命令說明可以參見
https://docs.docker.com/engine/reference/builder/#maintainer-deprecated
- .gitlab-ci.yml設定
這是gitlab ci 執行的指令碼檔案,根據需要,可以修改成自己的指令碼檔案。
我這裡設定了compile、package、deploy 3個階段,分別對應編譯、打包、釋出。
- 打包
a) 前面的工作做完後,就可以提交改動,並推送到gitlab伺服器,執行如下命令
>git add . >git commit -m '打包測試分支' >git push origin master
Push前,最好合並下倉庫的程式碼,以免出現程式碼混淆。
b) 檢視打包結果
如果出現如下結果,說明已經打包成功,注意我們在.gitlab-ci中定義了3個階段,所以這裡對應的顯示3個圖示,點選對應的階段圖示,即可看到編譯及打包的詳細過程
比如,我們點選package階段,顯示如下
可以看到包檔案已經生成,同時在gitlab也可以下載,非常的人性化,當然可以你也可以在指令碼檔案直接啟動服務,或者下載後啟動服務,也是非常的簡單,我就不寫了,持續整合及持續釋出,我分兩篇文章,這篇主要是持續整合,下篇是結合Docker持續釋出。
這樣持續整合就介紹完了,如果在開發中遇到問題,也可以留言共同探討共同進步。