從 IBM Cloud Container Registry 中的映像檔建立工作
請參閱 IBM Cloud® Container Registry,建立使用該映像檔的工作配置。 您可以透過控制台或使用 CLI 建立工作。
開始之前
-
您必須在 Container Registry中具有映像檔。 如需相關資訊,請參閱開始使用 Container Registry。 或者,您可以從 儲存庫來源 或從 本端來源 建置映像檔。
-
請確認您能否存取登錄檔。 請參閱 設定容器登錄的權限。
您是否想將專案設定為讓所有專案使用者都能在 Container Registry 中儲存和存取圖片,而無需手動建立註冊表機密? 如果具備足夠的許可權,您可以根據每個位置 (地區) 來配置這個預設登錄存取權。 如果您沒有足夠許可權來執行這些動作,您可以利用這個頁面來協助您瞭解必要的許可權。 請參閱 配置專案層面的設定。
使用主控台在 Container Registry 中建立參照映像檔的工作
使用 Code Engine 控制台,建立一個使用 Container Registry 中映像檔的工作配置。
Code Engine 可以自動從帳戶中的 Container Registry 名稱空間取回映像檔。 若要從不同的 Container Registry 帳戶或從專用 Docker Hub 帳戶取回映像檔,請參閱 從專用登錄中的映像檔建立工作。
- 開啟 Code Engine 主控台。
- 選擇「開始建立」。
- 請從可用專案清單中選取一個專案。 您也可以 建立新的。 請注意,您必須具有選取的專案才能建立工作。
- 選擇工作。
- 輸入工作名稱;例如:
myjob。 - 選取「使用現有容器映像」,然後按一下「設定映像」。
- 選取儲存器登錄位置,例如
IBM Registry Dallas。 - 針對 登錄密鑰選取
Code Engine managed secret。 因為此範例使用帳戶中 Container Registry 名稱空間中的映像檔,Code Engine 可以自動為您建立並管理登錄密鑰。 - 選取登錄中的現有名稱空間及映像檔名稱,以供 Code Engine 工作參照。 例如,選取
mynamespace並選取該名稱空間中的映像檔hello_repo。 - 選取 標籤的值; 例如
latest。 - 按一下完成。
- 修改環境變數或執行時期設定的任何預設值。 如需這些選項的相關資訊,請參閱 用於建立及執行工作的選項。
- 從「建立工作」頁面中,按一下 建立。
- 建立職缺後,系統將開啟該特定職缺的職缺頁面。 從工作頁面中,按一下 提交工作,以根據現行配置來提交工作。
現在,您已建立工作並 執行工作,您可以從工作頁面檢視工作配置及工作執行的詳細資料。
如果您想要在建立工作之前新增登錄存取權,請參閱 存取儲存器登錄。
使用 CLI 在 Container Registry 中建立具有映像檔的工作
使用 CLI 建立一個採用 IBM Cloud® Container Registry 中映像檔的工作配置,請使用 job create 指令。 如需選項的完整清單,請參閱 ibmcloud ce job create 指令。
開始之前
- 設定 Code Engine CLI 環境。
- 建立並使用專案。
- 在您可以使用參照 Container Registry中映像檔的 Code Engine 工作之前,必須先新增登錄的存取權,以便在執行工作時 Code Engine 可以取回映像檔。 如需存取映像檔登錄所需許可權的相關資訊,請參閱 設定映像檔登錄的權限。
-
若要新增對Container Registry的存取權限,請建立 IAM API 金鑰。 若要從 CLI 建立IBM Cloud IAM API 金鑰,請執行
iam api-key-create指令。 例如,要建立一個名為cliapikey且描述為My CLI API key的 API 金鑰並將其儲存到名為key_file的檔案中,請執行以下命令:ibmcloud iam api-key-create cliapikey -d "My CLI API key" --file key_file如果您選擇不將金鑰儲存至檔案,則必須記錄建立金鑰時所顯示的 API 金鑰。 此後無法擷取它。
-
建立 API 金鑰之後,請新增 Code Engine的登錄存取權。 若要使用 CLI 新增對 Container Registry 的存取權,請使用
ibmcloud ce secret create --format registry指令來建立登錄密鑰。 例如,下列指令會建立名為myregistry之 Container Registry 實例的登錄存取權。 請注意,即使在範例指令中指定了--server和--username選項,當伺服器是us.icr.io時,--server選項的預設值是us.icr.io,且--username選項預設為iamapikey。ibmcloud ce secret create --format registry --name myregistry --server us.icr.io --username iamapikey --password APIKEY輸出範例
Creating registry secret 'myregistry'... OK -
建立工作配置並參照 Container Registry中的
hello_repo映像檔。 例如,下列job create指令會建立myhellojob工作,以使用myregistry存取資訊來參照us.icr.io/mynamespace/hello_repo。ibmcloud ce job create --name myhellojob --image us.icr.io/mynamespace/hello_repo --registry-secret myregistry此工作的映像檔名稱格式為
REGISTRY/NAMESPACE/REPOSITORY:TAG,其中REGISTRY和TAG是選用項目。 若未指定REGISTRY,預設值為docker.io。 若未指定TAG,預設值為latest。
下一步
-
建立工作之後,請提交工作以執行它。 請參閱 執行工作。 您可以多次執行工作。
-
既然已建立您的工作,請考慮讓工作以事件驅動。 透過使用事件訂閱,您可以透過 定期排程 來觸發工作,或設定工作以回應事件,例如 檔案上傳。
-
您可以在下列 任何 方式中 更新工作 及其參照程式碼,與您建立或先前更新工作的方式無關。
-
如果您具有容器映像檔,則根據 Open Container Initiative(OCI)標準,您只需要提供映像檔的參照,這會在您建立 (或更新) 工作時指向容器登錄的位置。 您可以從 公用登錄 或 專用登錄 中的映像檔建立 (或更新) 工作,然後從工作執行中存取參照的映像檔。
如果您已使用
job create指令建立工作,並指定--build-source選項以從本端或儲存庫來源建置容器映像檔,且您想要將工作變更為指向不同的容器映像檔,則必須先從工作中移除建置的關聯。 例如,執行ibmcloud ce job update -n JOB_NAME --build-clear。 從工作中移除建置的關聯之後,您可以更新工作以參照不同的映像檔。 -
如果您從位於 Git 儲存庫中的原始碼開始,則可以選擇讓 Code Engine 負責從來源建置映像檔,以及使用 單一 作業來建立 (或更新) 工作。 在此實務範例中,Code Engine 會將映像檔上傳至 IBM Cloud® Container Registry。 若要進一步瞭解,請參閱 從儲存庫原始碼建立工作。 如果您想要進一步控制映像檔的建置,則可以在建立 (或更新) 工作並執行工作之前,選擇使用 Code Engine 來 建置映像檔。
-
如果您是從位於本端工作站上的原始碼開始,則可以選擇讓 Code Engine 負責從來源建置映像檔,並使用 單一 CLI 指令來建立工作。 在此實務範例中,Code Engine 會將映像檔上傳至 IBM Cloud® Container Registry。 若要進一步瞭解,請參閱 使用 CLI 從本端原始碼建立工作。 如果您想要進一步控制映像檔的建置,則可以在建立 (或更新) 工作並執行工作之前,選擇使用 Code Engine 來 建置映像檔。
例如,您可以選擇讓 Code Engine 處理本端來源的建置,同時發展工作的來源開發。 然後,在映像檔成熟之後,您可以更新工作以參照您想要的特定映像檔。 您可以視需要重複此程序。
當您執行更新的工作時,除非為映像檔指定標籤,否則會使用所參照儲存器映像檔的最新版本來執行工作。 如果為映像檔指定標籤,則會使用標記映像檔來執行工作。
-
尋找更多程式碼範例? 請參閱 「IBM Cloud Code Engine」GitHub 儲存庫中的範例。