-1

我有一个以前工作的现有 IBM Cloud Code Engine 项目。我提交了一个新的 buildrun,但它失败了。根据错误消息,这是由于对私有映像注册表(IBM Cloud Container Registry)的许可。IAM API 密钥有效并且正在用于其他任务。不存在配额问题。

ibmcloud ce buildrun submit --build mybuild

检查它显示的状态失败。进入日志,这些是问题:

myproject-build-run-n9xm6-xxx-pod-yyy/step-build-and-push:检查推送权限时出错——确保您输入了正确的标签名称,并且您的身份验证正确,然后重试:检查推送“us.icr.io/henrik/myproject:latest”的权限:为 us.icr.io 创建推送检查传输失败:GET https://us.icr.io/oauth/token?scope=repository%3Ahenrik%myproject %3Apush%2Cpull&service=registry : UNAUTHORIZED: 登录凭证无效,或者您的 IBM Cloud 帐户未激活。登录凭证无效,或者您的 IBM Cloud 帐户未处于活动状态。

无论我使用 CLI 还是浏览器控制台,错误都是相同的。

4

1 回答 1

1

事实证明,我为容器注册表启用了强制私有端点访问,这是一种安全最佳实践。但是,我需要代码引擎中的正确凭据才能访问容器注册表。使用 IBM Cloud Container Registry,在 Code Engine 中我需要

  • 为注册服务器private.<region>.icr.io创建注册凭证,例如private.us.icr.io
  • 将图像名称也设置为具有私有端点,例如private.us.icr.io/henrik/myproject

凭据和图像名称都具有匹配的服务器名称,我成功了,错误消失了。

于 2021-07-19T13:22:35.453 回答