CircleCI - Docker Логин и Частные Env Vars - PullRequest
0 голосов
/ 24 мая 2018

Я настраиваю CircleCI для автоматической сборки и загрузки в Docker Hub нескольких контейнеров библиотеки с открытым исходным кодом, в которую я добавляю.

Все отлично работает , за исключением , когда я пытаюсь войти в Docker, используяCLI.Я думаю, что мои сборки имеют проблемы с доступом к приватным env vars , однако я пытался все исправить, чтобы это исправить ...

Мой файл конфигурации выглядит следующим образом:

version: 2
jobs:
  build:
    working_directory: ~/build
    docker:
      - image: docker:git
    steps:
      - checkout
      - setup_remote_docker:
          reusable: true
          exclusive: true

      - run:
          name: Connect to Docker Hub
          command: |
            docker login -u ${DOCKER_USER} -p ${DOCKER_PASS}

Я получаю следующую ошибку:

#!/bin/sh -eo pipefail
docker login -u $DOCKER_USER -p $DOCKER_PASS
"docker login" requires at most 1 argument.
See 'docker login --help'.

Usage:  docker login [OPTIONS] [SERVER] [flags]

Log in to a Docker registry
Exited with code 1

Переменные конечно определены:

enter image description here

Я хотел бы уточнить, что это работает на ветви основного проекта и что мне не нужно запускать его на разветвлениях проекта.

Я обычно весьма полезен для Travis CI а это намного проще.

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Я нашел ответ, этот контейнер очень чувствителен к способу определения переменных env:

Эта команда должна использоваться:

docker login -u "$DOCKER_USER" -u "$DOCKER_PASS"

в качестве альтернативы можно использовать следующее:

echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin
0 голосов
/ 26 мая 2018

Вы используете версию Docker для разработки, которая могла изменить команду.

Вместо использования docker:git для своего изображения, используйте docker:stable-git.

...