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

В настоящее время у меня есть рабочий процесс, который выглядит следующим образом: 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 ice / cf? У меня такое ощущение, что мне не хватает чего-то очевидного. Я просто не могу найти это.

4 ответа

Решение

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

В принципе:

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

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

@Mods: Достаточно ли этого для ссылки на другой сайт? Я действительно ненавижу дублировать подобные вещи...

Вам необходимо использовать либо плагин Containers для cf, либо инструмент ICE для входа.

Документация

Плагин Cloud Foundry:cf ic loginICE:ice login

Можете ли вы создать собственный скрипт, который может войти первым? Если среда уже имеет cf с удлинением контейнеров:

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

Извините, мой новичок.

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

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

You can now generate tokens to access the IBM Bluemix Container Registry с использованием container-registry plugin for the bx команда.

These tokens can be read-only или же read-write and either non-expiring (unless revoked) or expire after 24 hours.

The tokens can be used directly with docker login,

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

Другие вопросы по тегам