從專用登錄中的映像檔部署應用程式工作負載

使用使用專用登錄 (例如專用 Docker Hub) 中映像檔的 Code Engine 來部署應用程式。 您可以從主控台或使用 CLI 來建立應用程式。

開始之前

  • 若要從專用登錄取回映像檔,您必須先建立專用登錄。 例如,若要建立專用 Docker Hub 登錄,請參閱 Docker Hub 文件
  • 建立專用登錄之後,請 將映像檔推送至其中
  • 您也可以設定存取記號。 透過使用存取記號,您可以更輕鬆地授與及撤銷 Docker Hub 帳戶的存取權,而不需要變更密碼。 如需存取權限和 Docker Hub 的詳細資訊,請參閱 建立和管理存取權限

使用主控台在專用登錄中部署參照映像檔的應用程式

使用 Code Engine 主控台部署在專用登錄中使用映像檔的應用程式。

在您可以使用參照專用登錄中映像檔的 Code Engine 應用程式之前,您必須先新增登錄的存取權,取回映像檔,然後部署它。

  1. 開啟 Code Engine 主控台。
  2. 選取 我們走
  3. 選擇應用程式
  4. 輸入應用程式的名稱;例如 helloapp。 使用專案中唯一的應用程式名稱。
  5. 從可用專案清單中選取專案。 您也可以 建立新的。 您必須具有選取的專案才能部署應用程式。
  6. 選取 儲存器映像檔,然後按一下 配置映像檔
  7. 針對 登錄伺服器,輸入 docker.io
  8. 針對 登錄密碼,選取 建立登錄密碼
  9. 從「建立登錄密鑰」頁面中,選擇您的登錄來源。 例如,Docker Hub
  10. 輸入使用者名稱。 對於 Docker Hub,它是您的 Docker ID。
  11. 輸入密碼。 若為 Docker Hub,您可以使用 Docker Hub 密碼或存取記號。 如需存取權限和 Docker Hub 的詳細資訊,請參閱 建立和管理存取權限
  12. 按一下 建立,以新增 Code Engine的登錄密鑰。
  13. 從「配置映像檔」頁面中,會列出已新增的登錄密鑰。 選取映像檔的登錄密鑰。
  14. 選取 Docker Hub 中映像檔的名稱空間及名稱,以供 Code Engine 應用程式參照。 例如,選取 mynamespace 並選取該名稱空間中的映像檔 hello_repo
  15. 選取 標籤的值; 例如 latest
  16. 按一下完成。 您已在登錄中選取要從應用程式參照的映像檔。
  17. 修改應用程式的任何執行時期設定或環境變數。 如需這些選項的相關資訊,請參閱 應用程式端點可見性的選項部署應用程式的選項
  18. 從「建立應用程式」頁面中,按一下 建立
  19. 應用程式狀態變更為 備妥之後,您可以測試應用程式。 按一下 測試應用程式,然後在「測試應用程式」窗格中按一下 傳送要求。 若要在網頁中開啟應用程式,請按一下應用程式 URL

現在您已部署應用程式,您可以檢視應用程式修訂及任何執行中實例的相關資訊,以及配置詳細資料。

如果您想要在建立應用程式之前新增登錄存取權,請參閱 新增專用容器登錄的存取權

使用 CLI 從專用登錄部署具有映像檔的應用程式

使用 CLI 搭配 ibmcloud ce app create 指令,部署在容器登錄中使用映像檔的應用程式。

開始之前

在您可以使用參照專用登錄中映像檔的 Code Engine 應用程式之前,您必須先新增登錄的存取權,取回映像檔,然後部署它。

  1. 若要從專用登錄取回映像檔,您必須先建立專用登錄。 例如,若要建立專用 Docker Hub 登錄,請參閱 Docker Hub 文件。 建立專用登錄之後,請 將映像檔推送至其中。 您也可以設定存取記號。 透過使用存取記號,您可以更輕鬆地授與及撤銷 Docker Hub 帳戶的存取權,而不需要變更密碼。 如需存取權限和 Docker Hub 的詳細資訊,請參閱 建立和管理存取權限

  2. 新增對專用登錄的存取權以取回映像檔。 若要使用 CLI 來新增對專用登錄的存取權,請使用 ibmcloud ce secret create --format registry 指令來建立登錄密鑰。 例如,下列指令會建立名為 privatedocker 的 Docker Hub 登錄的登錄存取權,該登錄位於 'https://index.docker.io/v1/',並使用您的使用者名稱及密碼。

    ibmcloud ce secret create --format registry --name privatedocker --server 'https://index.docker.io/v1/' --username <Docker_User_Name> --password <Password>
    

    輸出範例

    Creating registry secret 'privatedocker'...
    OK
    
  3. 建立應用程式,並在專用 Docker Hub 登錄中參照映像檔。 例如,建立 myhelloapp 應用程式,以使用 privatedocker 存取資訊來參照 docker.io/privaterepo/helloworld

    ibmcloud ce app create --name myhelloapp --image docker.io/privaterepo/helloworld --registry-secret privatedocker
    

    此應用程式的映像檔名稱格式為 REGISTRY/NAMESPACE/REPOSITORY:TAG,其中 REGISTRYTAG 是選用項目。 如果未指定 REGISTRY,則默認為 docker.io。 如果未指定 TAG,則默認為 latest

  4. 在應用程式部署之後,您可以存取應用程式。 若要取得應用程式的 URL,請執行 ibmcloud ce app get --name myhelloapp --output url。 當您 curl myhelloapp 應用程式時,會傳回 Hello World

    curl https://myhelloapp.abcdabcdhye.us-south.codeengine.appdomain.cloud
    

下一步

部署應用程式之後,您可以使用下列 任何 方法來 更新已部署的應用程式 及其參照的程式碼,與您建立或先前更新應用程式的方式無關:

  • 如果您具有容器映像檔,則根據 Open Container Initiative(OCI)標準,您只需要提供映像檔的參照,這會在您部署應用程式時指向容器登錄的位置。 您可以使用 公用登錄專用登錄 中的映像檔來部署應用程式。

    如果您已使用 app create 指令建立應用程式,並指定 --build-source 選項以從本端或儲存庫來源建置容器映像檔,且您想要將應用程式變更為指向不同的容器映像檔,則必須先從應用程式移除建置的關聯。 例如,執行 ibmcloud ce application update -n APP_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 儲存庫