從專用登錄中的映像檔部署應用程式工作負載
使用使用專用登錄 (例如專用 Docker Hub) 中映像檔的 Code Engine 來部署應用程式。 您可以從主控台或使用 CLI 來建立應用程式。
開始之前
- 若要從專用登錄取回映像檔,您必須先建立專用登錄。 例如,若要建立專用 Docker Hub 登錄,請參閱 Docker Hub 文件。
- 建立專用登錄之後,請 將映像檔推送至其中。
- 您也可以設定存取記號。 透過使用存取記號,您可以更輕鬆地授與及撤銷 Docker Hub 帳戶的存取權,而不需要變更密碼。 如需存取權限和 Docker Hub 的詳細資訊,請參閱 建立和管理存取權限。
使用主控台在專用登錄中部署參照映像檔的應用程式
使用 Code Engine 主控台部署在專用登錄中使用映像檔的應用程式。
在您可以使用參照專用登錄中映像檔的 Code Engine 應用程式之前,您必須先新增登錄的存取權,取回映像檔,然後部署它。
- 開啟 Code Engine 主控台。
- 選取 我們走。
- 選擇應用程式。
- 輸入應用程式的名稱;例如
helloapp。 使用專案中唯一的應用程式名稱。 - 從可用專案清單中選取專案。 您也可以 建立新的。 您必須具有選取的專案才能部署應用程式。
- 選取 儲存器映像檔,然後按一下 配置映像檔。
- 針對 登錄伺服器,輸入
docker.io。 - 針對 登錄密碼,選取 建立登錄密碼。
- 從「建立登錄密鑰」頁面中,選擇您的登錄來源。 例如,Docker Hub。
- 輸入使用者名稱。 對於 Docker Hub,它是您的 Docker ID。
- 輸入密碼。 若為 Docker Hub,您可以使用 Docker Hub 密碼或存取記號。 如需存取權限和 Docker Hub 的詳細資訊,請參閱 建立和管理存取權限。
- 按一下 建立,以新增 Code Engine的登錄密鑰。
- 從「配置映像檔」頁面中,會列出已新增的登錄密鑰。 選取映像檔的登錄密鑰。
- 選取 Docker Hub 中映像檔的名稱空間及名稱,以供 Code Engine 應用程式參照。 例如,選取
mynamespace並選取該名稱空間中的映像檔hello_repo。 - 選取 標籤的值; 例如
latest。 - 按一下完成。 您已在登錄中選取要從應用程式參照的映像檔。
- 修改應用程式的任何執行時期設定或環境變數。 如需這些選項的相關資訊,請參閱 應用程式端點可見性的選項 及 部署應用程式的選項。
- 從「建立應用程式」頁面中,按一下 建立。
- 應用程式狀態變更為 備妥之後,您可以測試應用程式。 按一下 測試應用程式,然後在「測試應用程式」窗格中按一下 傳送要求。 若要在網頁中開啟應用程式,請按一下應用程式 URL。
現在您已部署應用程式,您可以檢視應用程式修訂及任何執行中實例的相關資訊,以及配置詳細資料。
如果您想要在建立應用程式之前新增登錄存取權,請參閱 新增專用容器登錄的存取權。
使用 CLI 從專用登錄部署具有映像檔的應用程式
使用 CLI 搭配 ibmcloud ce app create 指令,部署在容器登錄中使用映像檔的應用程式。
開始之前
- 設定 Code Engine CLI 環境。
- 建立並使用專案。
在您可以使用參照專用登錄中映像檔的 Code Engine 應用程式之前,您必須先新增登錄的存取權,取回映像檔,然後部署它。
-
若要從專用登錄取回映像檔,您必須先建立專用登錄。 例如,若要建立專用 Docker Hub 登錄,請參閱 Docker Hub 文件。 建立專用登錄之後,請 將映像檔推送至其中。 您也可以設定存取記號。 透過使用存取記號,您可以更輕鬆地授與及撤銷 Docker Hub 帳戶的存取權,而不需要變更密碼。 如需存取權限和 Docker Hub 的詳細資訊,請參閱 建立和管理存取權限。
-
新增對專用登錄的存取權以取回映像檔。 若要使用 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 -
建立應用程式,並在專用 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,其中REGISTRY和TAG是選用項目。 如果未指定REGISTRY,則默認為docker.io。 如果未指定TAG,則默認為latest。 -
在應用程式部署之後,您可以存取應用程式。 若要取得應用程式的 URL,請執行
ibmcloud ce app get --name myhelloapp --output url。 當您 curlmyhelloapp應用程式時,會傳回Hello World。curl https://myhelloapp.abcdabcdhye.us-south.codeengine.appdomain.cloud
下一步
-
應用程式部署完成後,請透過 URL.NET 網站 存取您的應用程式。
-
您可以建立 自訂網域對映,並將它指派給應用程式。 如需在多個地區中使用自訂網域名稱部署應用程式的相關資訊,請參閱 配置高可用性應用程式。
-
既然您的應用程式已部署,請考慮讓應用程式以事件驅動。 透過使用事件訂閱,您可以透過 定期排程 來觸發應用程式,或設定應用程式對事件 (例如 檔案上傳 或 Kafka 訊息) 做出反應。
部署應用程式之後,您可以使用下列 任何 方法來 更新已部署的應用程式 及其參照的程式碼,與您建立或先前更新應用程式的方式無關:
-
如果您具有容器映像檔,則根據 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 儲存庫。