在没有cf / ice CLI的情况下部署到IBM Containers

时间:2015-07-08 03:25:37

标签: docker containers ibm-cloud wercker container-registry

我目前的工作流程如下:Bitbucket - > Wercker。

Wercker正确构建我的应用程序,但在部署方面,我迷失了。我正在尝试部署到我在Bluemix上的IBM Containers注册表(最近测试版)。 使用我的IBM帐户凭据运行docker login registry.ng.bluemix.net将返回401:本地计算机上的错误凭据(OSX上的boot2docker)。在我的部署步骤中,它在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 Docs将用户名和密码作为环境变量传入(我已经测试过它们是否正确传递)。

基本上:如何在不使用ice / cf CLI的情况下将容器推送到IBM注册表?我有一种感觉,我错过了一些明显的东西。我找不到它。

4 个答案:

答案 0 :(得分:3)

您需要使用cf的Containers插件或ICE工具登录。

Documentation

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

您可以创建可以先登录的自定义脚本吗?如果环境已经包含cf容器扩展名:

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

原谅我的wercker newb。

答案 1 :(得分:1)

问题是注册表的身份验证使用令牌而不是您的用户ID和密码。 ice logincf ic login会照顾到这一点,但不幸的是,直线docker login无效。

此处还提供了一些用于初始化,构建和清理图像的脚本:https://github.com/Osthanes/docker_builder。这些用于DevOps Services交付管道,这可能与您正在构建的管道类似。

答案 2 :(得分:1)

Turns out: it's very possible.

基本上:

  • 安装CF cli
  • cf login -a https://api.ng.bluemix.net
  • 从〜/ .cf / config.json中提取令牌(在AccessToken +&#34;&#34; + OrganizationFields.Guid
  • 中的承载后的文本

这取决于你想用它做什么。我在这里写了一篇非常详细的文章on Github。 您可以使用令牌作为密码,通过“持票人”#39;作为用户名。

@mods:这足以让我链接到另一个网站吗?我真的不想复制这样的东西......

答案 3 :(得分:0)

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

这些令牌可以是read-onlyread-write,也可以是非过期(除非已撤销)或24小时后过期。

令牌可以直接与docker login一起使用。

阅读文档here