本樣本模板是用於從Git拉取代碼構建Docker鏡像,並上傳至ACR,適用於構建鏡像並儲存到鏡像倉庫的情境。該模板既支援您在已有ECS上構建,還支援臨時開啟一台ECS進行構建,構建完成後自動釋放。此外,該模板支援上傳到企業版ACR(收費)和個人版ACR(免費),為您提供多種選擇方案。
前提條件
您已擁有企業版或個人版ACR。更多資訊,請參見Container RegistryACR、個人版和企業版執行個體差異化說明、建立個人版執行個體。
樣本模板流程
由您指定代碼源(例如OSSObject Storage Service或者Git),OOS將為代碼源產生臨時連結,用於後續代碼拉取。
拉取代碼,安裝Docker並執行構建指令碼。鏡像構建完成後,串連ACR將鏡像上傳至指定倉庫。
使用樣本
代碼源準備
本樣本使用了一個Spring Boot的樣本專案代碼來示範,代碼已上傳到Gitee和GitHub倉庫,如果想要使用,請先fork到自己的倉庫。代碼地址:
Gitee:gitee範例程式碼(中國內地建議使用Gitee)
Github:github範例程式碼(海外地區建議使用Github)
建立模板
在左側導覽列,選擇,單擊建立模板。
在構建部署地區,選擇構建鏡像至ACR,單擊下一步。
在流程配置頁簽下,填寫模板參數,然後單擊建立模板。
指定您的代碼源,為下一步拉取代碼做準備,產生一個臨時授權連結。
本樣本以Gitee為代碼源,填寫該代碼源的所有者、組織、倉庫以及分支等參數。
說明如果您未授權阿里雲從您的GitHub/Gitee讀取您的代碼倉庫,請單擊前往授權來完成授權操作。
如果您之前已經Fork範例程式碼,您只需下拉倉庫,會自動展示您帳號下所有倉庫,請選擇Fork的範例程式碼倉庫。

構建Docker鏡像,並上傳到ACR。
指定代碼源並選擇構建的ECS,再按需提供構建配置指令碼。

代碼源和代碼源連結:代碼源選擇
git,代碼源連結引用了上一個任務的輸出(預設為authorizedUrl。選擇構建Ecs:需要選擇構建的ECS,支援在已有ECS構建和新啟動臨時ECS構建兩種方式。
說明選擇新啟動臨時ECS構建方式,系統會以隨用隨付的方式產生費用。另外,OOS會自動檢測ECS上是否已安裝Docker,如果沒有安裝,會自動為您安裝Docker社區版。
構建配置:按需提供構建準備命令,當前樣本的所有構建都會在Dockerfile內完成,您無需額外準備。
完成Docker構建並上傳至ACR倉庫。
OOS會為您執行
docker build命令構建鏡像。您需要指定Dockerfile的路徑和docker build命令執行的上下文路徑。
Dockerfile路徑:該路徑為Dockerfile檔案相對於程式碼程式庫根目錄所在的路徑。如下圖,Dockerfile就在代碼根目錄,所以直接填寫檔案名稱Dockerfile。

上下文路徑:ContextPath為
docker build命令執行內容路徑,填寫相對於代碼根目錄的路徑,如果不填寫,預設為和Dockerfile同一目錄。Container Registry類型:您需要提供上傳至ACR的相關資訊,支援企業版(付費)和個人版(免費)方式。
Container Registry類型
說明
相關連結
個人版
您可以依次選擇您的使用者名稱、密碼以及想要上傳的倉庫名稱。
企業版
您可以依次下拉選擇當前帳號下的Container Registry執行個體ID,命名空間以及要上傳的倉庫名稱。
最後您需要提供構建的鏡像版本,預設值是基於當前日期和執行ID構成的,您可按需替換成適合您專案的鏡像版本。然後您還需要確認是否通過內網上傳鏡像,可參考配置專用網路的存取控制。
單擊建立模板。
執行模板
在左側導覽列,選擇。
在自訂工作範本頁面,找到已建立的模板,單擊對應操作列下的建立執行。
在基本資料階段,配置相應參數,單擊下一步:設定參數。
在設定參數階段,如果沒有可配置的參數,直接單擊下一步:確定。
單擊建立。
在任務執行管理頁面,執行狀態顯示為成功時,表示模板執行任務已完成。

前往ACR控制台,查看最新的鏡像是否已推送到指定的倉庫。
鏡像成功儲存到倉庫後,可用於後續的部署或其他動作。

後續使用
後續如果您的代碼有更新,您只需把程式碼推送到相應Git倉庫,然後重新執行該CI/CD模板,該流水線會為您拉取最新代碼,重建鏡像並推送。當然,如果您需要調整模板,也可以更新模板後再重新執行。