本文檔將為您介紹如何通過流水線Flow,實現代碼源託管到鏡像構建,並推送到自訂的私人鏡像倉庫。
前提條件
請確保安裝配置完成自訂的鏡像倉庫(ACR/Harbor),關於使用自訂ACR鏡像倉庫,具體操作請參閱使用個人版執行個體推送拉取鏡像。
代碼託管倉庫需要包含構建鏡像的Dockerfile指令檔案。
步驟一:建立流水線
登入流水線控制台,在控制台介面,請單擊右側上方建立流水線按鈕。
在快顯視窗中,根據需求選擇合適的流水線模板,本文選擇使用了空模板,單擊建立按鈕。
步驟二:流水線任務>代碼源
選擇建立的目標流水線,進入到流水線任務節點的操作頁面。
選擇任務節點按鈕添加流水線源,單擊代碼源,選擇範例程式碼源,選擇JAVA語言,單擊添加按鈕,完成代碼源流水線任務配置。
說明流水線源提供了多種代碼源的託管倉庫平台,如:自建GitLab、Codeup、GitHub等,可以根據您的需求選擇。
重要構建鏡像Dockerfile指令檔案,有關內容請參閱在Dockerfile中使用構建打包鏡像並運行。
如果您選擇的非範例程式碼源,請確保您的代碼倉庫已建立配置了構建鏡像的Dockerfile指令檔案。
步驟三:流水線任務>鏡像構建並推送Harbor
選擇構建環境,配置方式。
指定容器環境/預設VM環境
選擇任務節點新的任務,選擇導覽功能表鏡像構建,添加鏡像構建推送任務。如果已有空白任務,則在任務步驟中,單獨添加兩個步驟
Docker Login和鏡像構建並推送。
配置基本參數。
參數
說明
任務名稱
您可自訂任務名稱,一般保持預設即可。
構建叢集
支援以下構建叢集:
構建環境
支援以下構建環境:
指定容器環境(雲效預設構建叢集):流水線 Flow 在構建機器上啟動指定容器,在單容器環境進行構建。雲效提供官方常用鏡像供選擇使用、您也可以指定自己的鏡像作為運行環境。
預設VM環境(僅私人構建叢集支援):須選擇指定構建節點。流水線 Flow會直接在構建機器上安裝環境並執行任務,為了提升任務構建速度建議提前在構建機器上安裝好相應SDK和環境。
說明任務執行期間,流水線任務構建環境分配給使用者使用,構建環境的使用權歸屬使用者,任務執行指令碼由使用者自訂。
下載流水線源
開啟下載流水線源後,您配置的源檔案將會被下載至對應的工作目錄下。支援以下三種方式:
下載全部流水線源
不下載流水線源
下載部分流水線源
在任務步驟中,單擊添加步驟,添加Java專案構建環境,
安裝 Java、配置 MavenSettings 檔案和執行命令三個步驟。
在任務步驟配置項裡,展開Docker Login和鏡像構建並推送任務,完成以下任務參數設定。
參數
說明
步驟名稱
您可以自訂步驟名稱,本文保持預設名稱。
鏡像倉庫地址
設定Registry自訂鏡像倉庫地址。
選擇服務串連
單擊添加服務串連,選擇或者建立您的Harbor私人鏡像倉庫帳號和密碼,將目標私人鏡像倉庫服務授權於流水線 Flow服務訪問。
鏡像地址
填寫鏡像構建並推送的地址。
說明鏡像地址格式,例如:172.xx.xx.133/library/test:latest,表示IP地址或者網域名稱+專案名稱+標籤。
鏡像地址支援固定Repository,例如registry.cn-hangzhou.aliyuncs.com/ns/demo:1.0,或者帶動態參數例如registry.cn-hangzhou.aliyuncs.com/ns/demo:${DATETIME}。
Dockerfile路徑
本文範例程式碼源倉庫中Dockerfile檔案位於根目錄下,保持預設路徑即可。
說明如果非本文範例程式碼源,請正確設定您的Dockerfile路徑地址。
Dockerfile路徑,預設路徑是相對於程式碼程式庫根目錄所在路徑,如META/config/Dockerfile或Dockerfile。
鏡像緩衝
指定鏡像緩衝方式,支援 local 本機快取(僅私人構建叢集生效)、remote 遠端緩衝、no-cache 不使用緩衝三種方式:
本機快取:僅在私人構建叢集下生效,使用構建機本機快取。
遠端緩衝:使用
--cache-from、--cache-to指定遠端緩衝鏡像地址。不填則預設使用<鏡像 repo 地址>:flow-docker-build-cache作為緩衝地址。不使用緩衝:公用構建叢集無本機快取,不使用緩衝;私人構建叢集使用
--no-cache指定不使用緩衝,每次構建重新拉取鏡像層。
更多構建參數
支援指定更多構建參數定製構建行為,如
--build-arg arg1=value1指定構建參數;--platform linux/amd64,linux/arm64指定構建架構。
步驟四:運行並查看日誌
在流水線Flow控制台介面我的流水線列表,單擊目標流水線右側
運行按鈕,選擇目標流水線查看流水線任務節點介面。在構建鏡像任務節點,單擊日誌查看到流水線任務步驟及日誌。
