Развертывание в 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 login
ICE: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
,
Прочитайте документы здесь