Развертывание контейнеров IBM без cf / ice CLI

В настоящее время у меня есть рабочий процесс, который выглядит следующим образом: Bitbucket -> Wercker.

Wercker правильно строит мое приложение, но когда дело доходит до развертывания, я теряюсь. Я пытаюсь развернуть мой реестр IBM Containers на Bluemix (недавно из бета-версии). Запуск docker login registry.ng.bluemix.net с моими учетными данными учетной записи IBM возвращает 401: плохие учетные данные на моем локальном компьютере (boot2docker на OSX). Он делает то же самое на 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 (и я проверял, что они переданы правильно).

В основном: как вы нажимаете контейнеры в реестр IBM без использования CLI для льда / cf? У меня такое ощущение, что я пропустил что-то очевидное. Я просто не могу его найти.

Для входа в систему необходимо использовать плагин Containers для cf или инструмента 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.

Проблема в том, что аутентификация в реестре использует токен, а не ваш идентификатор пользователя и пароль. ice login и cf ic login позаботятся об этом, но, к сожалению, прямое подключение docker login не будет работать.

Некоторые скрипты для инициализации, создания и очистки изображений также доступны здесь: https://github.com/Osthanes/docker_builder . Они используются в конвейере доставки услуг DevOps, что, скорее всего, похоже на то, что вы строите.

Оказывается: это очень возможно.

В основном:

  • Установите CF cli
  • cf login -a https://api.ng.bluemix.net
  • Извлечь токен из ~ / .cf / config.json (текст после носителя в AccessToken + "|" + OrganizationFields.Guid

Это зависит от того, что вы хотите с этим делать. У меня есть очень подробное описание здесь, на Github . Вы можете использовать токен в качестве пароля, передавая «носитель» в качестве имени пользователя.

@mods: Достаточно ли для меня ссылки на другой сайт? Мне очень нравится дублировать такие вещи …

Теперь вы можете генерировать токены для доступа к IBM Bluemix Container Registry с помощью плагина container-registry для команды bx .

Эти токены могут быть read-only read-write или read-write и либо не истекают (если не отменены), либо истекают через 24 часа.

Токены могут использоваться непосредственно с docker login .

Прочтите документы здесь