1. 程式人生 > >基礎架構之持續整合

基礎架構之持續整合

這篇文章通過gitlab來實現專案的持續整合,主要介紹從開發提交程式碼到編譯、打包、生成映象的過程,我專案型別為java的spring cloud,所以以此來介紹,實現目標如下圖所示。

 

 

(一)  環境要求

  1. Centos 7.5.1804
  2. Docker 18.06.1-ce
  3. gitlab/gitlab-ce
  4. gitlab/gitlab-runner

(二)  專案設定

  1. 修改專案pom.xml

a)      新增Maven的docker外掛,如下所示

 

 

b)      注意事項

             i.          設定goal到maven的phase,當然你可以繫結多個goal,我這裡是把build及push分開來設定,這個在gitlab ci中會分到不同的階段。

             ii.          JAR_FILE的設定,這個是傳給Dockerfile使用的,這裡是打包後的Jar包。

             iii.          Username、password、useMavenSettingsForAuth 賬號設定

  1. 新增Dockerfile

a)      這是映象生成的依據,內容如下所示

 

 

其中JAR_FILE為POM中設定要傳遞的標籤名,基礎映象為java:8,其它命令說明可以參見

https://docs.docker.com/engine/reference/builder/#maintainer-deprecated

  1. .gitlab-ci.yml設定

這是gitlab ci 執行的指令碼檔案,根據需要,可以修改成自己的指令碼檔案。

 

 

我這裡設定了compile、package、deploy 3個階段,分別對應編譯、打包、釋出。

  1. 打包

a)      前面的工作做完後,就可以提交改動,並推送到gitlab伺服器,執行如下命令

>git add .

>git commit -m '打包測試分支'

>git push origin master

 

Push前,最好合並下倉庫的程式碼,以免出現程式碼混淆。

b)      檢視打包結果

如果出現如下結果,說明已經打包成功,注意我們在.gitlab-ci中定義了3個階段,所以這裡對應的顯示3個圖示,點選對應的階段圖示,即可看到編譯及打包的詳細過程

 

 

比如,我們點選package階段,顯示如下

 

 

可以看到包檔案已經生成,同時在gitlab也可以下載,非常的人性化,當然可以你也可以在指令碼檔案直接啟動服務,或者下載後啟動服務,也是非常的簡單,我就不寫了,持續整合及持續釋出,我分兩篇文章,這篇主要是持續整合,下篇是結合Docker持續釋出。

這樣持續整合就介紹完了,如果在開發中遇到問題,也可以留言共同探討共同進步。