從 IBM Cloud Container Registry 中的映像檔建立工作

請參閱 IBM Cloud® Container Registry,建立使用該映像檔的工作配置。 您可以透過控制台或使用 CLI 建立工作。

開始之前

您是否想將專案設定為讓所有專案使用者都能在 Container Registry 中儲存和存取圖片,而無需手動建立註冊表機密? 如果具備足夠的許可權,您可以根據每個位置 (地區) 來配置這個預設登錄存取權。 如果您沒有足夠許可權來執行這些動作,您可以利用這個頁面來協助您瞭解必要的許可權。 請參閱 配置專案層面的設定

使用主控台在 Container Registry 中建立參照映像檔的工作

使用 Code Engine 控制台,建立一個使用 Container Registry 中映像檔的工作配置。

Code Engine 可以自動從帳戶中的 Container Registry 名稱空間取回映像檔。 若要從不同的 Container Registry 帳戶或從專用 Docker Hub 帳戶取回映像檔,請參閱 從專用登錄中的映像檔建立工作

  1. 開啟 Code Engine 主控台。
  2. 選擇「開始建立」。
  3. 請從可用專案清單中選取一個專案。 您也可以 建立新的。 請注意,您必須具有選取的專案才能建立工作。
  4. 選擇工作
  5. 輸入工作名稱;例如:myjob
  6. 選取「使用現有容器映像」,然後按一下「設定映像」。
  7. 選取儲存器登錄位置,例如 IBM Registry Dallas
  8. 針對 登錄密鑰選取 Code Engine managed secret。 因為此範例使用帳戶中 Container Registry 名稱空間中的映像檔,Code Engine 可以自動為您建立並管理登錄密鑰。
  9. 選取登錄中的現有名稱空間及映像檔名稱,以供 Code Engine 工作參照。 例如,選取 mynamespace 並選取該名稱空間中的映像檔 hello_repo
  10. 選取 標籤的值; 例如 latest
  11. 按一下完成
  12. 修改環境變數或執行時期設定的任何預設值。 如需這些選項的相關資訊,請參閱 用於建立及執行工作的選項
  13. 從「建立工作」頁面中,按一下 建立
  14. 建立職缺後,系統將開啟該特定職缺的職缺頁面。 從工作頁面中,按一下 提交工作,以根據現行配置來提交工作。

現在,您已建立工作並 執行工作,您可以從工作頁面檢視工作配置及工作執行的詳細資料。

如果您想要在建立工作之前新增登錄存取權,請參閱 存取儲存器登錄

使用 CLI 在 Container Registry 中建立具有映像檔的工作

使用 CLI 建立一個採用 IBM Cloud® Container Registry 中映像檔的工作配置,請使用 job create 指令。 如需選項的完整清單,請參閱 ibmcloud ce job create 指令。

開始之前

  • 設定 Code Engine CLI 環境。
  • 建立並使用專案
  • 在您可以使用參照 Container Registry中映像檔的 Code Engine 工作之前,必須先新增登錄的存取權,以便在執行工作時 Code Engine 可以取回映像檔。 如需存取映像檔登錄所需許可權的相關資訊,請參閱 設定映像檔登錄的權限
  1. 若要新增對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 金鑰。 此後無法擷取它。

  2. 建立 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
    
  3. 建立工作配置並參照 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,其中 REGISTRYTAG 是選用項目。 若未指定 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 儲存庫中的範例