You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IBM Cloud Code Engine无法从自有镜像仓库拉取镜像授权问题

问题排查与解决

从报错信息和操作步骤来看,问题大概率出在镜像权限配置、镜像引用正确性或资源上下文匹配上,以下是具体排查点和解决方法:

1. 补全镜像引用的标签

你创建Code Engine应用时,镜像地址未指定标签:

ibmcloud ce app create --name $CODE_ENGINE_APP_NAME --image icr.io/$REGISTRY_NAMESPACE/$DOCKER_IMAGE_NAME

虽然Docker默认拉取:latest标签,但ICR与Code Engine的交互中,明确指定标签可避免解析歧义。修改命令为:

ibmcloud ce app create --name $CODE_ENGINE_APP_NAME --image icr.io/$REGISTRY_NAMESPACE/$DOCKER_IMAGE_NAME:latest

2. 检查Code Engine的ICR访问权限

Code Engine默认自动授权访问同账号下的ICR镜像,但配置变更可能导致权限失效:

  • 查看现有授权策略:
    ibmcloud iam authorization-policies list --source-service codeengine --target-service container-registry
    
  • 若无对应策略,手动创建授权(替换$RESOURCE_GROUP_NAME为你的资源组):
    ibmcloud iam authorization-policy-create codeengine container-registry --source-resource-group $RESOURCE_GROUP_NAME --roles Reader
    

3. 验证资源上下文一致性

ICR是区域化服务,需确保以下上下文完全匹配:

  • 执行ibmcloud target确认当前IBM Cloud区域
  • 执行ibmcloud cr region get确认ICR操作区域
  • 执行ibmcloud ce project get --name project1查看Code Engine项目区域
    若三者不匹配,切换至正确区域后重新推送镜像、创建应用。

4. 确认镜像与命名空间的有效性

  • 检查ICR命名空间是否存在:
    ibmcloud cr namespaces
    
  • 检查镜像是否成功推送:
    ibmcloud cr images --namespace $REGISTRY_NAMESPACE
    

确保输出中存在icr.io/$REGISTRY_NAMESPACE/$DOCKER_IMAGE_NAME:latest记录。

5. 重置登录上下文

会话过期或上下文切换不彻底可能导致认证异常,重新执行以下命令重置:

ibmcloud login -r <你的目标区域> -g $RESOURCE_GROUP_NAME
ibmcloud cr login
ibmcloud ce project select -n project1

内容的提问来源于stack exchange,提问作者MRieding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:52:24