不使用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 login
和cf 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-only
或read-write
并且可以是非过期的(除非被撤销),或者在24小时后过期。
令牌可以直接用于docker login
。
在这里阅读文档
- 使用远程API从AWS ECR中拖出Docker镜像
- 为什么在“192.168.1.1:53:dialup tcp:lookup cdn-registry-1.docker.io:read udp 192.168.1.1:53:I / O timeout”时推送Docker镜像失败?
- Docker映像版本用于持续集成/持续部署
- docker私人registry:ping尝试失败
- Docker将Windows Container Image推送到Google Containerregistry失败,显示“无效”
- 使用BlueMix容器registry服务而不运行本地docker
- 从Docker容器中将图像推送到Google Container Registry
- 无法将自己的映像推送到IBM Bluemix Registry
- CoreOS:当拉大尺寸大于4 GB的大docker图像时