不使用cf / ice CLI部署到IBM容器

我目前有一个这样的工作stream程:Bitbucket – > Wercker。

Wercker正确地构build了我的应用程序,但是在部署时,我迷了路。 我正试图部署到Bluemix上的IBM Containersregistry(最近testing版)。 使用我的IBM帐户凭据运行docker login registry.ng.bluemix.net在我的本地计算机(OSX上的boot2docker)上返回401:错误的凭据。 它在我部署步骤中的Wercker上也是如此。 这是我的部署步骤:

 deploy: box: id: node tag: 0.12.6-slim steps: - internal/docker-push: username: $USERNAME password: $PASSWORD tag: main entrypoint: node bundle/main.js repository: <my namespace/<my container name> (removed for this post) registry: registry.ng.bluemix.net 

正如你所看到的:我有根据Wercker文档传入的用户名和密码作为环境variables(并且我testing了它们正确传入)。

基本上:如何在不使用ice / cf CLI的情况下将容器推送到IBM注册中心? 我有一种感觉,我失去了一些明显的东西。 我无法find它。

您需要使用cf的Containers插件或ICE工具来login。

文档

Cloud Foundry插件: cf ic login ICE: ice login

你能创build一个可以先login的自定义脚本吗? 如果环境已经有容器扩展cf

 - script: name: Custom login for Bluemix Containers code: cf login -u <username> -p <password> -o <org> -s <space> 

请原谅我的wercker newb。

问题是与registry的身份validation使用令牌而不是您的用户名和密码。 ice logincf ic login照顾,但不幸的是,一个直线docker login将无法正常工作。

初始化,构build和清理图像的一些脚本也可以在这里find: https : //github.com/Osthanes/docker_builder 。 这些在DevOps Services交付pipe道中使用,这可能与您正在构build的stream程类似。

原来:这很可能。

基本上:

  • 安装CF cli
  • cflogin-a https://api.ng.bluemix.net
  • 从〜/ .cf / config.json中提取令牌(AccessToken +“+”+ OrganizationFields.Guid

这取决于你想用它做什么。 我在Github上有一个非常详细的文章。 您可以使用令牌作为密码,通过“承载者”作为用户名。

@mods:这足以让我链接到另一个网站? 我真的很讨厌复制像这样的东西…

您现在可以使用bx命令的container-registry插件来生成令牌以访问IBM Bluemix Container Registry

这些令牌可以是read-onlyread-write并且可以是非过期的(除非被撤销),或者在24小时后过期。

令牌可以直接用于docker login

在这里阅读文档