将IBM Cloud Docker Registry添加为Octopus Deploy外部Feed

3
我正在尝试对IBM Cloud(又名Bluemix)托管的私有Docker注册表进行身份验证。
在Octopus中,我可以成功连接到主要的Docker Hub源index.docker.io。并且通过IBM Swagger文档(链接:https://registry.eu-gb.bluemix.net/api/doc/#/)发出请求也能够返回有效结果。
但是,在尝试将IBM Cloud添加为外部源时,Octopus会返回以下内容:
Octopus v2018.5.6    
Unable to retrieve authentication token required to perform operation.    
System.Exception    
   at Octopus.Core.Packages.Docker.DockerRegistryOAuthClient.RetrieveAuthenticationToken    
   at Octopus.Core.Packages.Docker.DockerRegistryOAuthClient.GetAuthRequestHeader    
   at Octopus.Core.Packages.Docker.DockerRegistryOAuthClient.Get

我在配置 feed 时,文档或标签没有明确指出应输入哪些值,但我尝试了以下内容:

  • URL:https://registry.eu-gb.bluemix.net
  • Registry path: registry.eu-gb.bluemix.net/api/v1/images
  • 用户名:我的邮箱和用户 ID 都试过了
  • 密码:我的 IBM Bluemix 密码或直接使用验证令牌。

编辑:我现在还尝试了IBM Cloud 网站上的这个指南

  1. 我可以使用 Bluemix 命令行工具创建并检索到我的令牌。
  2. 我可以通过 docker login -u token -p <token_value> <registry_url> 在命令行中登录 docker,但是用相同方式配置 Octopus feed(用户名:token,密码:<token_value>)仍然会导致与上述相同的错误。

你尝试过将注册表路径留空吗? - data_henrik
@data_henrik 是的,我已经尝试过空白和只使用 registry.eu-gb.bluemix.nethttps://registry.eu-gb.bluemix.net,还尝试了全球 Bluemix 注册表 (registry.bluemix.net) — 不幸的是,所有这些都给出了相同的错误。 - anotherdave
1个回答

2
你是否与Octopus澄清了有关支持私有注册表的要求?从文档中可以看出,目录端点是必需的。如果是这样的话,那么IBM Cloud容器注册表不会公开此端点,因为它将列出所有帐户拥有的存储库。请注意,看起来Docker Hub也有相同的限制(如Insufficient scope when attempting to get Docker Hub catalog所述),这可能是为什么Octopus文档说在Docker Hub上搜索和列出私有存储库不受支持的原因:https://octopus.com/docs/packaging-applications/package-repositories/registries/docker-hub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接