更新應用程式
應用程式包含一個以上 修訂。 修訂代表應用程式配置內容的不可變版本。 應用程式配置內容的每一項更新都會建立應用程式的新修訂。
當您修改應用程式並使用變更部署應用程式,或 重新部署應用程式而不變更其配置設定 時,這些動作會部署應用程式的新修訂。 當您部署 (或重新部署) 應用程式修訂時,Code Engine 會使用任何已變更的配置設定,並取得應用程式所參照的任何已更新容器映像檔、密鑰或 configmap。
如需部署應用程式的相關資訊,例如指定 有效 vCPU 及記憶體組合、定義指令及引數、環境變數、密碼或 configmap,請參閱 用於部署應用程式的選項。
Code Engine 具有專案中應用程式及應用程式修訂數目的配額。 如需專案限制的相關資訊,請參閱 專案配額。Code Engine 除了作用中應用程式修訂之外,僅保留應用程式的最新非作用中修訂。 會刪除較舊的修訂。
您可以使用下列 任何 方法來 更新已部署的應用程式 及其參照的程式碼,與您建立或先前更新應用程式的方式無關:
-
如果您具有容器映像檔,則根據 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 處理本端來源的建置,同時發展應用程式的來源開發。 然後,在映像檔成熟之後,您可以更新已部署的應用程式,以參照您想要的特定映像檔。 您可以視需要重複此程序。
當您部署更新的應用程式時,除非為映像檔指定標籤,否則會下載並部署所參照容器映像檔的最新版本。 如果為映像檔指定了標籤,則會將已標記的映像檔用於部署。
如果我想要在不變更配置設定的情況下重新部署我的應用程式,該怎麼辦?
您可以透過變更配置值並部署應用程式,一律使用配置變更來部署應用程式。
不過,您可能想要重新部署應用程式修訂,而不變更應用程式配置設定。 可能已變更您所參照的容器映像檔,且您想要應用程式修訂使用已更新的容器映像檔。 或者,您可能想要應用程式參照密鑰或 configmap,其中包含已更新的內容值。
對於這些實務範例,從主控台,您可以從應用程式頁面的 配置 標籤中按一下 重新部署,而無需變更應用程式配置。 使用 CLI,可使用 ibmcloud ce app update 指令。
從主控台更新應用程式
更新您在 從主控台部署公用登錄中的應用程式 中建立的應用程式,以新增環境變數。
- 導覽到您的申請頁面。 導覽至應用程式頁面的一種方式是
- 找出 Code Engine 專案頁面。
- 按一下專案名稱以開啟「概觀」頁面。
- 按一下應用程式,開啟應用程式清單。 按一下應用程式的名稱,以開啟其應用程式頁面。
- 從應用程式頁面中,您可以檢視應用程式的執行中實例及其修訂、配置詳細資料及應用程式端點設定的相關資訊。 按一下您要使用的應用程式修訂名稱,以開啟該修訂的配置摘要。 或者,您可以按一下 配置 標籤,以開啟最新應用程式修訂的配置摘要。
- 從 配置 標籤中,按一下 環境變數 標籤。
- 按一下新增環境變數。 將此環境變數定義為文字值。 輸入
TARGET代表名稱,輸入Stranger代表值。 按一下新增。 - 按一下 部署,以儲存變更並部署應用程式修訂。
- 應用程式狀態變更為 備妥之後,您可以測試應用程式修訂。 按一下 測試應用程式,然後在「測試應用程式」窗格中按一下 傳送要求。 若要在網頁中開啟應用程式,請按一下 應用程式 URL。 對於此應用程式,會顯示
Hello Stranger。
在此範例中,您已更新應用程式的環境變數。 您也可以更新應用程式的其他配置設定,包括從 程式碼 標籤參照 不同的映像檔 或 不同的映像檔建置。 從 資源及調整大小 標籤中,您可以更新應用程式的 記憶體 及 應用程式調整大小 設定。 從 環境變數 標籤中,您可以為應用程式新增或更新 環境變數。 從 映像檔啟動選項 標籤中,您可以新增或更新 指令及引數,以置換容器映像檔內的設定,或 使用存活性及就緒探測。
從主控台更新應用程式以使用僅限專案的端點
依預設,當您部署應用程式時,應用程式會進行部署,以便它可以從公用網際網路、專用網路或專案內的元件接收要求。 讓我們變更此應用程式的可見性,讓它僅由在相同 Code Engine 環境中執行的其他 Code Engine 資源存取。 使用 網域對映 標籤來變更應用程式的可見性。
-
導覽到您的申請頁面。 導覽至應用程式頁面的一種方式是
- 找出 Code Engine 專案頁面。
- 按一下專案名稱以開啟「概觀」頁面。
- 按一下應用程式,開啟應用程式清單。 按一下應用程式的名稱,以開啟其應用程式頁面。
-
從應用程式頁面中,您可以檢視應用程式的執行中實例及其修訂、配置詳細資料及應用程式端點設定的相關資訊。 按一下 網域對映 標籤,以開啟應用程式的端點可見性設定。
-
從 網域對映 標籤中,注意應用程式可用的 URL。 選取
Public時,您可以檢視應用程式的公用及內部系統網域對映 URL。 當選取 無外部系統網域對映 時,無法再從公用網際網路存取此應用程式,且只能從此專案內的元件進行網路存取。當您變更應用程式的可見性時,變更會立即生效。 請務必考量變更對作用中使用者或整合的影響,以及任何安全含意。 您可以視需要變更可見性設定。
從主控台更新應用程式以使用專用端點
依預設,當您部署應用程式時,應用程式會進行部署,以便它可以從公用網際網路、專用網路或專案內的元件接收要求。 讓我們變更此應用程式的可見性,讓它僅由使用「虛擬專用端點」在相同專案中及從專用網路中執行的其他 Code Engine 資源存取。 使用 網域對映 標籤來變更應用程式的可見性。
-
導覽到您的申請頁面。 導覽至應用程式頁面的一種方式是
- 找出 Code Engine 專案頁面。
- 按一下專案名稱以開啟「概觀」頁面。
- 按一下應用程式,開啟應用程式清單。 按一下應用程式的名稱,以開啟其應用程式頁面。
-
從應用程式頁面中,您可以檢視應用程式的執行中實例及其修訂、配置詳細資料及應用程式端點設定的相關資訊。 按一下 網域對映 標籤,以開啟應用程式的端點可見性設定。
-
從 網域對映 標籤中,注意應用程式可用的 URL。 當選取
Private時,無法再從公用網際網路存取此應用程式,且只能從此專案內的元件 (cluster-local) 及專用網路存取網路。按一下 專用,以變更應用程式的端點可見性。 端點定義的可用 URL 會針對專用及僅限專案的 URL 顯示。
-
若要使用「虛擬專用端點 (VPE)」安全地存取應用程式,請遵循 使用 VPE 來存取應用程式 的指示來設定 VPE 以存取您的應用程式。
如果您為 visibility = private 設定應用程式,則只能透過 Virtual Private Cloud(VPC)內的虛擬專用端點 來測試應用程式。
透過變更應用程式的可見性,變更會立即生效。 請務必考量變更對作用中使用者或整合的影響,以及任何安全含意。 您可以視需要變更可見性設定。
使用 CLI 更新您的應用程式
若要使用 CLI 更新應用程式,請使用 app update 指令。 此指令需要您要更新之應用程式的名稱,而且也容許其他選用引數。 如需選項的完整清單,請參閱 ibmcloud ce app update 指令。
更新您在 使用 CLI 部署應用程式 中建立的應用程式,以新增環境變數。
範例 icr.io/codeengine/hello 映像檔會讀取環境變數 TARGET,並列印 Hello ${TARGET}。 如果此環境變數為空,Hello World。 下列範例會更新應用程式,以將 TARGET 環境變數的值修改為 Stranger。 如需用於此範例之程式碼的相關資訊,請參閱 hello。
-
執行
application update指令。 例如,ibmcloud ce application update -n myapp --env TARGET=Stranger輸出範例
Updating application 'myapp' to latest revision. [...] Run 'ibmcloud ce application get -n myapp' to check the application status. OK https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
執行
application get指令,以顯示應用程式的狀態,包括最新修訂資訊。ibmcloud ce application get --name myapp輸出範例
[...] Name: myapp [...] URL: https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp.4svg40kna19.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration Environment Variables: Type Name Value Literal TARGET Stranger Image: icr.io/codeengine/hello Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Revisions: myapp-hc3u8-2: Age: 82s Traffic: 100% Image: icr.io/codeengine/hello (pinned to f0dc03) Running Instances: 1 Runtime: Concurrency: 100 Maximum Scale: 10 Minimum Scale: 0 Timeout: 300 Conditions: Type OK Age Reason ConfigurationsReady true 75s Ready true 62s RoutesReady true 62s Events: Type Reason Age Source Messages Normal Created 2m11s service-controller Created Configuration "myapp" Normal Created 2m11s service-controller Created Route "myapp" Instances: Name Revision Running Status Restarts Age myapp-hc3u8-1-deployment-65cf8cd4f5-jx8b8 myapp-hc3u8-1 1/2 Terminating 0 2m10s myapp-hc3u8-2-deployment-7f98b679d5-2hskr myapp-hc3u8-2 2/2 Terminating 0 85s從 修訂 區段中的輸出,您可以查看
myapp服務的最新應用程式修訂。 此外,請注意應用程式的 100% 資料流量正在執行應用程式的最新修訂。 -
呼叫應用程式。
curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud輸出範例
Hello Stranger從此指令的輸出中,您可以看到更新的應用程式現在會傳回
Hello Stranger。 -
使用
ibmcloud ce revision list指令來顯示所有應用程式修訂。 使用此資訊可協助您管理應用程式修訂,因為 Code Engine 具有 專案中應用程式修訂數目的配額。在下列
revision list輸出中,請注意 Code Engine 只會保留應用程式的最新非作用中修訂,以及作用中應用程式修訂。 會刪除較舊的修訂。ibmcloud ce revision list輸出範例
Listing all application revisions... OK Name Application Status URL Latest Tag Traffic Age Conditions Reason myapp-hc3u8-4 myapp Ready 2d15h 3 OK / 4 myapp-hc3u8-5 myapp Ready true 100% 2d8h 3 OK / 4 myapp2-vjfqt-1 myapp2 Ready true 100% 3d 3 OK / 4 myhelloapp-tv368-3 myhelloapp Ready 16d 3 OK / 4 myhelloapp-tv368-4 myhelloapp Ready true 100% 16d 3 OK / 4 newapp-mytest-00008 newapp-mytest Ready 4d17h 3 OK / 4 newapp-mytest-00009 newapp-mytest Ready true 100% 2d20h 3 OK / 4
您可以使用 ibmcloud ce revision get 指令來顯示應用程式修訂的詳細資料,並使用 ibmcloud ce revision delete 指令來移除您不想保留的修訂,以管理您的應用程式修訂。 您也可以使用 ibmcloud ce revision logs 指令來檢視應用程式修訂實例的日誌。 使用 ibmcloud ce revision events 指令來顯示應用程式修訂實例的系統事件。
使用 CLI 更新應用程式以使用僅限專案的端點
依預設,當您部署應用程式時,應用程式會進行部署,以便它可以從公用網際網路、專用網路或專案內的元件接收要求。 若要變更應用程式的可見性,使其僅由在相同專案中執行的其他 Code Engine 資源存取,請搭配使用 --visibility=project 選項與 ibmcloud ce app update 或 ibmcloud ce app create 指令。
在此實務範例中,更新您在 使用 CLI 部署應用程式 中建立的應用程式,以將應用程式的可見性變更為使用 專案端點。
-
執行
application update指令。 例如,ibmcloud ce application update -n myapp --visibility=project輸出範例
Updating application 'myapp' to latest revision. [...] Run 'ibmcloud ce application get -n myapp' to check the application status. OK http://myapp.4svg40kna19.svc.cluster.local -
執行
application get指令,以顯示應用程式的狀態,包括最新修訂資訊。ibmcloud ce application get --name myapp輸出範例
[...] Name: myapp [...] URL: http://myapp.4svg40kna19.svc.cluster.local Cluster Local URL: http://myapp.4svg40kna19.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration Environment Variables: Type Name Value Literal TARGET Stranger Image: icr.io/codeengine/hello Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Revisions: myapp-hc3u8-2: Age: 82s Traffic: 100% Image: icr.io/codeengine/hello (pinned to f0dc03) Running Instances: 1 Runtime: Concurrency: 100 Maximum Scale: 10 Minimum Scale: 0 Timeout: 300 Conditions: Type OK Age Reason ConfigurationsReady true 75s Ready true 62s RoutesReady true 62s Events: Type Reason Age Source Messages Normal Created 2m11s service-controller Created Configuration "myapp" Normal Created 2m11s service-controller Created Route "myapp" Instances: Name Revision Running Status Restarts Age myapp-hc3u8-1-deployment-65cf8cd4f5-jx8b8 myapp-hc3u8-1 1/2 Terminating 0 2m10s myapp-hc3u8-2-deployment-7f98b679d5-2hskr myapp-hc3u8-2 2/2 Terminating 0 85s從 修訂 區段中的輸出,您可以查看
myapp服務的最新應用程式修訂。 此外,請注意應用程式的 100% 資料流量正在執行應用程式的最新修訂。
現在您已在應用程式上設定 --visibility=project,無法再從公用網際網路存取此應用程式,且只能從此專案內的元件 (cluster-local) 進行網路存取。
更新應用程式以使用 CLI 來使用專用端點
依預設,當您部署應用程式時,應用程式會進行部署,以便它可以從公用網際網路、專用網路或專案內的元件接收要求。 您可以設定應用程式的端點可見性,讓它使用專用端點進行部署。 設定專用端點表示無法從公用網際網路存取您的應用程式,且只能從虛擬專用端點 (VPC) 或 Code Engine 元件 (在相同專案中執行) 中的其他 IBM Cloud 服務進行網路存取。
若要變更應用程式的可見性,以便只使用專用端點來存取它,請搭配使用 --visibility=private 選項與 ibmcloud ce app update 或 ibmcloud ce app create 指令。
如果您選取的專案支援 應用程式專用可見性,則只能使用 VPE 來存取具有專用端點的應用程式。 若要確認專案是否支援應用程式專用可見性,請使用 ibmcloud ce project get 指令來驗證 Application Private Visibility Supported 的輸出是否設為 true。
在此實務範例中,更新您在 使用 CLI 部署應用程式 中建立的應用程式,以將應用程式的可見性變更為使用 專用端點。
-
確認現有專案支援具有專用可見性的應用程式。 使用
ibmcloud ce project get指令來驗證Application Private Visibility Supported的輸出是否設為true。 如果值為false,請 聯絡 IBM 支援中心,以在現有專案內啟用此功能。ibmcloud ce project get -n myproject輸出範例
Getting project 'myproject'... OK Name: myproject ID: abcdabcd-abcd-abcd-abcd-f1de4aab5d5d Status: active Enabled: true Application Private Visibility Supported: true Selected: true Region: us-south Resource Group: default Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f Age: 52d Created: Tue, 28 Sep 2021 05:12:16 -0500 Updated: Tue, 28 Sep 2021 05:12:19 -0500 Quotas: Category Used Limit App revisions 1 60 Apps 1 20 Build runs 1 100 Builds 2 100 Configmaps 2 100 CPU 0 64 Ephemeral storage 0 256G Instances (active) 0 250 Instances (total) 0 2500 Job runs 0 100 Jobs 0 100 Memory 0 256G Secrets 6 100 Subscriptions (cron) 0 100 Subscriptions (IBM Cloud Object Storage) 0 100 Subscriptions (Kafka) 0 100 -
如果
Application Private Visibility Supported是true,則您可以更新應用程式以使用專用端點。 執行application update指令。 例如,ibmcloud ce application update -n myapp --visibility=private輸出範例
Updating application 'myapp' to latest revision. [...] Run 'ibmcloud ce application get -n myapp' to check the application status. OK https://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud -
執行
application get指令,以顯示應用程式的狀態,包括最新修訂資訊。ibmcloud ce application get --name myapp輸出範例
[...] Name: myapp [...] URL: https://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp.4svg40kna19.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration Environment Variables: Type Name Value Literal TARGET Stranger Image: icr.io/codeengine/hello Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Revisions: myapp-hc3u8-2: Age: 82s Traffic: 100% Image: icr.io/codeengine/hello (pinned to f0dc03) Running Instances: 1 Runtime: Concurrency: 100 Maximum Scale: 10 Minimum Scale: 0 Timeout: 300 Conditions: Type OK Age Reason ConfigurationsReady true 75s Ready true 62s RoutesReady true 62s Events: Type Reason Age Source Messages Normal Created 2m11s service-controller Created Configuration "myapp" Normal Created 2m11s service-controller Created Route "myapp" Instances: Name Revision Running Status Restarts Age myapp-hc3u8-1-deployment-65cf8cd4f5-jx8b8 myapp-hc3u8-1 1/2 Terminating 0 2m10s myapp-hc3u8-2-deployment-7f98b679d5-2hskr myapp-hc3u8-2 2/2 Terminating 0 85s從 修訂 區段中的輸出,您可以查看
myapp服務的最新應用程式修訂。 此外,請注意應用程式的 100% 資料流量正在執行應用程式的最新修訂。 -
設定 VPE 以 使用專用端點存取應用程式。
更新應用程式以參照不同的映像檔
您可以更新應用程式以參照不同的映像檔。
與特定應用程式修訂相關聯的映像檔具有唯一儲存器登錄摘要,且 Code Engine 在應用程式修訂的生命期限內使用此摘要。 如果您使用與原始映像檔相同的標籤來建立較新版本的映像檔,則會改寫容器登錄中的原始映像檔,並變成無標籤。 會標記較新的映像檔,且此較新的映像檔具有不同的摘要。 您的 Code Engine 應用程式未使用這個較新的映像檔,因為較新的映像檔具有與應用程式修訂所參照的映像檔不同的摘要。只要原始參照的未標記映像檔仍然存在,Code Engine 仍然可以建立應用程式修訂的新實例。 如需相關資訊,請參閱 為何無法 Code Engine 取回映像檔?
從主控台更新應用程式以參照 Container Registry 中的不同映像檔
使用 Code Engine 主控台,更新應用程式以參照儲存器登錄中的不同映像檔。
在此範例中,讓我們更新您在 從主控台在容器登錄中部署參照映像檔的應用程式 中建立的 helloapp,以參照不同的映像檔。 更新的應用程式會參照 Container Registry中 mynamespace2 名稱空間內的 helloworld_repo 映像檔。 下列步驟說明在應用程式更新期間新增對登錄的存取權。
如需將映像檔新增至 Container Registry的相關資訊,請參閱 開始使用 IBM Cloud Container Registry。
-
導覽到您的申請頁面。 導覽至應用程式頁面的一種方式是
- 找出 Code Engine 專案頁面。
- 按一下專案名稱以開啟「概觀」頁面。
- 按一下應用程式,開啟應用程式清單。 按一下應用程式的名稱,以開啟應用程式頁面。
-
按一下 配置 標籤,以開啟最新應用程式修訂的配置詳細資料。
-
從 配置 標籤中,按一下 程式碼 標籤。
-
若要讓映像檔執行,請按一下 配置映像檔,以開啟配置映像檔對話框。 對於此範例,請更新應用程式以參照現有
ibmcregistry登錄,選取mynamespace2名稱空間,選取helloworld-repo映像檔,然後選取1作為tag的值。 從配置映像檔頁面中,- 如果您要使用的映像檔位於相同的 Container Registry 帳戶中,請選取登錄的存取權。
- 如果您要使用的映像檔位於不同的容器登錄帳戶中,則可以選取此登錄的登錄存取權。 如果登錄存取權不存在,您必須先 建立 IAM API 金鑰,然後 將登錄存取權新增至 Code Engine。
如果您只想要更新映像檔的登錄存取權,則可以進行此變更,而無需按一下 配置映像檔 以開啟配置映像檔對話框,並使用「登錄存取」功能表來選取現有登錄存取權,或針對應用程式所參照的映像檔 建立 Code Engine 的登錄存取權。
-
按一下完成。 您已在登錄中選取要從應用程式參照的映像檔。
-
按一下 部署,以儲存變更並部署應用程式修訂。
-
應用程式狀態變更為 備妥之後,您可以測試應用程式修訂。 按一下 測試應用程式,然後在「測試應用程式」窗格中按一下 傳送要求。 若要在網頁中開啟應用程式,請按一下 應用程式 URL。 對於此應用程式,會顯示
Hello World from Code Engine。
使用 CLI 更新應用程式以參照 Container Registry 中的不同映像檔
更新應用程式以從 Code Engine CLI 參照 Container Registry 中的不同映像檔。
在此範例中,請更新您在 使用 CLI 部署參照容器登錄中映像檔的應用程式 中建立的 myhelloapp,以參照相同帳戶中不同名稱空間內的不同映像檔。 更新應用程式以參照 Container Registry中 mynamespace2 名稱空間內的
helloworld_repo 映像檔。
-
將不同的映像檔新增至 Container Registry。 在此範例中,請在 Container Registry的
mynamespace2名稱空間中新增helloworld_repo映像檔。 如需將映像檔新增至 Container Registry的相關資訊,請參閱 開始使用 IBM Cloud Container Registry。 -
新增 Code Engine的登錄存取權。 在此範例中,因為
helloworld_repo映像檔位於相同的帳戶中,所以請使用先前定義的myregistry登錄存取權。 -
使用
myregistry存取權來更新應用程式並參照 Container Registry 中的映像檔。 例如,更新myhelloapp應用程式,以使用myregistry存取資訊來參照us.icr.io/mynamespace2/helloworld_repo。ibmcloud ce app update --name myhelloapp --image us.icr.io/mynamespace2/helloworld_repo:1 --registry-secret myregistry此應用程式的映像檔名稱格式為
REGISTRY/NAMESPACE/REPOSITORY:TAG,其中REGISTRY和TAG是選用項目。 如果未指定REGISTRY,則默認為docker.io。 如果未指定TAG,則默認為latest。 -
更新應用程式之後,您可以存取應用程式。 若要取得應用程式的 URL,請執行
ibmcloud ce app get --name myhelloapp --output url。 當您對myhelloapp應用程式進行 curl 處理時,應用程式會傳回Hello World from Code Engine,這會示範應用程式現在正在使用helloworld_repo映像檔。
更新應用程式以從主控台參照從原始碼建置的映像檔
更新應用程式以參照使用 Code Engine 主控台從原始碼建置的映像檔。
在此範例中,讓我們更新您在 從主控台部署參照容器登錄中映像檔的應用程式 中建立的 helloapp,以參照從原始碼建置的映像檔。
如需從主控台建立建置配置的相關資訊,請參閱 建立建置。
- 導覽到您的申請頁面。 導覽至應用程式頁面的一種方式是
- 找出 Code Engine 專案頁面。
- 按一下專案名稱以開啟「概觀」頁面。
- 按一下應用程式,開啟應用程式清單。 按一下應用程式的名稱,以開啟應用程式頁面。
- 按一下 配置 標籤,以開啟最新應用程式修訂的配置詳細資料。
- 從 配置 標籤中,按一下 程式碼 標籤。
- 從 程式碼 標籤中,您可以建立映像檔建置,也可以重新執行應用程式所參照的現有映像檔建置。 若要建立映像檔建置,請按一下 從來源建立映像檔,以執行映像檔建置。 即會開啟「指定建置詳細資料」頁面,您可以在其中輸入建置的詳細資料,以 從原始碼部署應用程式。 指定建置詳細資料更新項目時,請按一下 完成。
- 按一下 部署,以儲存變更、執行建置,並部署應用程式修訂。
- 應用程式狀態變更為 備妥之後,您可以測試應用程式修訂。 按一下 測試應用程式,然後在「測試應用程式」窗格中按一下 傳送要求。 若要在網頁中開啟應用程式,請按一下 應用程式 URL。
- 若要再次更新此應用程式以參照更新的建置映像檔,請從 程式碼 標籤中按一下 重新執行建置,並為更新的建置映像檔指定唯一的映像檔標籤。 如果您想要對建置詳細資料進行更多變更,請按一下 編輯建置詳細資料。 即會開啟「指定建置詳細資料」頁面,您可以在其中輸入建置的詳細資料,以 從原始碼部署應用程式。 指定建置詳細資料更新項目時,請按一下 完成。
- 按一下 部署 以儲存變更、使用變更執行建置,以及部署應用程式修訂。
- 應用程式狀態變更為 備妥之後,您可以測試應用程式修訂。 按一下 測試應用程式,然後在「測試應用程式」窗格中按一下 傳送要求。 若要在網頁中開啟應用程式,請按一下 應用程式 URL。
更新應用程式以參照使用 CLI 從原始碼建置的映像檔
更新應用程式以參照使用 Code Engine CLI 從原始碼建置的映像檔。
在此範例中,讓我們在 使用 CLI 來更新應用程式以參照 Container Registry 中的不同映像檔 中變更您更新的 myhelloapp,以參照從原始碼建置的不同映像檔。
在前一個範例中,myhelloapp 應用程式使用 myregistry 存取資訊來參照 us.icr.io/mynamespace2/helloworld_repo。 讓我們建立建置配置,執行建置,並更新 myhelloapp,以參照從原始碼建置的映像檔。
-
建立建置配置。 例如,下列
build create指令會建立稱為helloworld-build的建置配置。 此配置從公用 Git 儲存庫https://github.com/IBM/CodeEngine建置,使用dockerfile策略及medium建置大小,並使用myregistry中定義的映像檔登錄密鑰將映像檔儲存至us.icr.io/mynamespace/codeengine-helloworld。ibmcloud ce build create --name helloworld-build --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --commit main --context-dir /hello --strategy dockerfile --size medium -
執行建置。 這個範例執行稱為
helloworld-build-run的建置,並使用helloworld-build建置配置。ibmcloud ce buildrun submit --build helloworld-build --name helloworld-build-run下列輸出顯示使用
ibmcloud ce buildrun get指令來執行建置的詳細資料。輸出範例
Getting build run 'helloworld-build-run'... [...] OK Name: helloworld-build-run ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 21m Created: 2021-09-30T14:50:13-05:00 Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Image: us.icr.io/mynamespace/codeengine-helloworld如需使用 CLI 來建立建置配置的相關資訊,請參閱 建立建置。
-
更新
myhelloapp以參照您所建置並使用myregistry登錄密鑰的映像檔。ibmcloud ce app update --name myhelloapp --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry -
顯示已更新應用程式的相關資訊,以確認所參照的映像檔是您所建置的映像檔。
ibmcloud ce app get --name myhelloapp輸出範例
[...] OK Name: myhelloapp ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2m4s Created: 2021-09-09T14:01:02-04:00 URL: https://myhelloapp.abcdabcdabc.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myhelloapp.abcdabcdabc.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myhelloapp/configuration Status Summary: Application deployed successfully Environment Variables: Type Name Value Literal CE_API_BASE_URL https://api.private.us-south.codeengine.cloud.ibm.com Literal CE_APP myhelloapp Literal CE_DOMAIN us-south.codeengine.appdomain.cloud Literal CE_PROJECT_ID abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Literal CE_REGION us-south Literal CE_SUBDOMAIN abcdabcdab Image: us.icr.io/mynancesnamespace/codeengine-helloworld Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Registry Secrets: myregistry Revisions: helloapp-00003: Age: 2m46s Latest: true Traffic: 100% Image: us.icr.io/mysnamespace/codeengine-helloworld (pinned to eeca2b) Running Instances: 1 [...]