2

我目前的工作流程是这样的:Bitbucket -> Wercker。

Wercker 正确地构建了我的应用程序,但是在部署时我迷失了。我正在尝试部署到我在 Bluemix 上的 IBM Containers 注册表(最近没有测试版)。使用我的 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 Docs ,我将用户名和密码作为环境变量传入(并且我已经测试过它们是否正确传入)。

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

4

4 回答 4

3

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

文档

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

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

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

对不起,我的 wercker newb。

于 2015-07-08T07:00:54.817 回答
1

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

一些用于初始化、构建和清理镜像的脚本也可以在这里找到:https ://github.com/Osthanes/docker_builder 。这些用于 DevOps 服务交付管道,这可能与您正在构建的流程类似。

于 2015-07-09T02:10:48.273 回答
1

事实证明:这很有可能。

基本上:

  • 安装 CF cli
  • cf 登录 -a https://api.ng.bluemix.net
  • 从 ~/.cf/config.json 中提取令牌(AccessToken + "|" + OrganizationFields.Guid 中承载后的文本

这取决于你想用它做什么。我在 Github 上有一篇非常详细的文章。您可以使用令牌作为密码,传递 'bearer' 作为用户名。

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

于 2015-07-10T03:02:38.577 回答
0

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

这些令牌可以是read-only或非read-write过期(除非被撤销)或在 24 小时后过期。

令牌可以直接与docker login.

在此处阅读文档

于 2017-06-16T12:15:10.557 回答