更新应用程序
应用程序包含一个或多个 修订版。 修订版表示应用程序的配置属性的不可变版本。 应用程序配置属性的每次更新都会创建应用程序的新修订版。
当您修改应用程序并使用更改来部署应用程序时,或者 重新部署应用程序而不更改其配置设置 时,这些操作将部署应用程序的新修订版。 部署 (或重新部署) 应用程序修订版时,Code Engine 使用任何已更改的配置设置,并获取应用程序引用的任何已更新的容器映像,密钥或配置映射。
有关部署应用程序的更多信息,例如,指定 有效 vCPU 和内存组合,定义命令和参数,环境变量,私钥或配置映射,请参阅 用于部署应用程序的选项。
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
作为值。 单击添加。 - 单击 部署 以保存更改并部署应用程序修订版。
- 应用程序状态更改为 就绪后,可以测试应用程序修订版。 单击 测试应用程序,然后在“测试应用程序”窗格中单击 发送请求。 要在 Web 页面中打开应用程序,请单击 应用程序 URL。 对于此应用程序,将显示
Hello Stranger
。
在此示例中,您更新了应用程序的环境变量。 您还可以更新应用程序的其他配置设置,包括引用 代码 选项卡中的 不同映像 或 不同映像构建。 从 资源和缩放 选项卡中,可以更新应用程序的 内存 和 应用程序缩放 设置。 从 环境变量 选项卡中,可以为应用程序添加或更新 环境变量。 从 映像启动选项 选项卡中,可以添加或更新 命令和自变量 以覆盖容器映像中的设置,或者 使用活动性和就绪性探测器。
从控制台更新应用程序以使用仅项目端点
缺省情况下,部署应用程序时,应用程序会进行部署,以便它可以从公共因特网,专用网络或项目中的组件接收请求。 让我们更改此应用程序的可视性,使其仅可供在同一 Code Engine 环境中运行的其他 Code Engine 资源访问。 使用 域映射 选项卡可更改应用程序的可视性。
-
浏览至应用程序页面。 浏览到应用程序页面的一种方法是
- 找到 Code Engine "项目" 页面。
- 单击项目的名称以打开“概述”页面。
- 单击 应用程序 以打开应用程序列表。 单击应用程序的名称以打开其应用程序页面。
-
在应用程序页面中,您可以查看有关应用程序的运行实例及其修订版,配置详细信息和应用程序端点设置的信息。 单击 域映射 选项卡以打开应用程序的端点可视性设置。
-
从 域映射 选项卡中,请注意应用程序的可用 URL。 选择
Public
时,您可以查看应用程序的公共和内部系统域映射 URL。 如果选择了 无外部系统域映射,那么无法再从公共因特网访问此应用程序,并且只能从此项目中的组件进行网络访问。当您更改应用程序的可视性时,该更改将立即生效。 请务必考虑更改对活动用户或集成的影响以及任何安全影响。 您可以根据需要更改可视性设置。
从控制台更新应用程序以使用专用端点
缺省情况下,部署应用程序时,应用程序会进行部署,以便它可以从公共因特网,专用网络或项目中的组件接收请求。 让我们更改此应用程序的可视性,使其仅可供在同一项目中运行的其他 Code Engine 资源使用虚拟专用端点从专用网络进行访问。 使用 域映射 选项卡可更改应用程序的可视性。
-
浏览至应用程序页面。 浏览到应用程序页面的一种方法是
- 找到 Code Engine "项目" 页面。
- 单击项目的名称以打开“概述”页面。
- 单击 应用程序 以打开应用程序列表。 单击应用程序的名称以打开其应用程序页面。
-
在应用程序页面中,您可以查看有关应用程序的运行实例及其修订版,配置详细信息和应用程序端点设置的信息。 单击 域映射 选项卡以打开应用程序的端点可视性设置。
-
从 域映射 选项卡中,请注意应用程序的可用 URL。 选择
Private
后,将无法再从公用因特网访问此应用程序,并且只能从此项目中的组件 (集群本地) 和专用网络进行网络访问。单击 专用 以更改应用程序的端点可视性。 将针对专用 URL 和仅项目 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
,此应用程序不再可从公用因特网访问,并且只能从此项目中的组件 (集群本地) 进行网络访问。
通过 CLI 更新应用程序以使用专用端点
缺省情况下,部署应用程序时,应用程序会进行部署,以便它可以从公共因特网,专用网络或项目中的组件接收请求。 您可以设置应用程序的端点可视性,以便将其与专用端点一起部署。 设置专用端点意味着无法从公共因特网访问应用程序,只能从在同一项目 (cluster-local) 中运行的虚拟专用端点 (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 的注册表访问权。
-
单击完成。 您在注册表中选择了要从应用程序引用的映像。
-
单击 部署 以保存更改并部署应用程序修订版。
-
应用程序状态更改为 Ready 后,可以测试应用程序修订版。 单击 测试应用程序,然后在“测试应用程序”窗格中单击 发送请求。 要在 Web 页面中打开应用程序,请单击 应用程序 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 "项目" 页面。
- 单击项目的名称以打开“概述”页面。
- 单击 应用程序 以打开应用程序列表。 单击应用程序的名称以打开应用程序页面。
- 单击 配置 选项卡以打开最新应用程序修订版的配置详细信息。
- 从 配置 选项卡中,单击 代码 选项卡。
- 在 代码 选项卡中,可以创建映像构建,也可以重新运行应用程序所引用的现有映像构建。 要创建映像构建,请单击 从源创建映像 以运行映像构建。 此时将打开“指定构建详细信息”页面,您可以在其中输入构建的详细信息以 从源代码部署应用程序。 指定构建详细信息更新时,单击 完成。
- 单击 部署 以保存更改,运行构建并部署应用程序修订版。
- 应用程序状态更改为 Ready 后,可以测试应用程序修订版。 单击 测试应用程序,然后在“测试应用程序”窗格中单击 发送请求。 要在 Web 页面中打开应用程序,请单击 应用程序 URL。
- 要再次更新此应用程序以引用已更新的构建映像,请从 代码 选项卡中单击 重新构建,并为已更新的构建映像指定唯一的映像标记。 如果要对构建详细信息进行更多更改,请单击 编辑构建详细信息。 此时将打开“指定构建详细信息”页面,您可以在其中输入构建的详细信息以 从源代码部署应用程序。 指定构建详细信息更新时,单击 完成。
- 单击 部署 以保存更改,运行包含更改的构建,然后部署应用程序修订版。
- 应用程序状态更改为 Ready 后,可以测试应用程序修订版。 单击 测试应用程序,然后在“测试应用程序”窗格中单击 发送请求。 要在 Web 页面中打开应用程序,请单击 应用程序 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.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 [...]