IBM Cloud Code Engine 无权从其自己的注册表中提取映像

问题描述 投票:0回答:2

我对 IBM Cloud 和代码引擎还很陌生。我正在尝试通过将 docker 容器上传到 IBM Cloud Container Registry 并将其用于代码引擎应用程序来部署名为“project1”的应用程序。

问题是,应用程序创建总是失败并显示此消息(命名空间是 project_namespace):

“修订版“project1-00001”失败并显示消息:无法获取图像“icr.io/project1_namespace/project1”:无法将图像解析为摘要:GET https:/。请参阅https://ibm.biz/BdPKqq; 需要授权。请参阅 https://ibm.biz/BdPKqq。”

或有时这条消息:

“修订版“project1-00001”失败并显示消息:无法获取图像“icr.io/project1_namespace/project1”:无法将图像解析为摘要:GET https://icr.io/oauth/token?scope=repository %!A(MISSING)project1_namespace%!F(MISSING)project1%!A(MISSING)pull&service=registry: UNAUTHORIZED: Authorization required. See https://ibm.biz/BdPKqq; Authorization required. See https: //ibm.biz/BdPKqq。”

我不明白为什么身份验证会在这里失败。这是我的工作:

ibmcloud login
ibmcloud cr login

docker build -t $DOCKER_IMAGE_NAME $DOCKERFILE_PATH 

ibmcloud target -g $RESOURCE_GROUP_NAME
ibmcloud cr namespace-add $REGISTRY_NAMESPACE
ibmcloud ce project create --name project1
ibmcloud ce project select -n project1

docker tag $DOCKER_IMAGE_NAME icr.io/$REGISTRY_NAMESPACE/${DOCKER_IMAGE_NAME}:latest
docker push icr.io/$REGISTRY_NAMESPACE/${DOCKER_IMAGE_NAME}:latest

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

代码引擎应用程序应该成功拉取 icr.io 图像。对吧?

docker ibm-cloud container-registry ibm-cloud-code-engine
2个回答
1
投票

IBM Cloud Code Engine 本身需要访问 Container Registry、您的命名空间和存储的容器镜像。在您的命令中,您显示您首先登录 (

cr login
),然后访问容器注册表以添加命名空间并推送图像。这是您的私有注册表,其中的容器仅对具有访问权限的人可见

Code Engine 无权访问 Container Registry,除非您授予它。这就是为什么您需要create an access secret.


© www.soinside.com 2019 - 2024. All rights reserved.