我目前的工作流程如下: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注册表?我有一种感觉,我错过了一些明显的东西。我找不到它。
答案 0 :(得分:3)
您需要使用cf的Containers插件或ICE工具登录。
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 login
和cf ic login
会照顾到这一点,但不幸的是,直线docker login
无效。
此处还提供了一些用于初始化,构建和清理图像的脚本:https://github.com/Osthanes/docker_builder。这些用于DevOps Services交付管道,这可能与您正在构建的管道类似。
答案 2 :(得分:1)
Turns out: it's very possible.
基本上:
这取决于你想用它做什么。我在这里写了一篇非常详细的文章on Github。 您可以使用令牌作为密码,通过“持票人”#39;作为用户名。
@mods:这足以让我链接到另一个网站吗?我真的不想复制这样的东西......
答案 3 :(得分:0)
您现在可以使用IBM Bluemix Container Registry
命令的container-registry
插件生成令牌以访问bx
。
这些令牌可以是read-only
或read-write
,也可以是非过期(除非已撤销)或24小时后过期。
令牌可以直接与docker login
一起使用。
阅读文档here