Drone CI секреты не заселяются

Я пытаюсь вставить образ докера в личный реестр в Drone 0.8.5, и он работает, когда я жестко кодирую имя пользователя и пароль в конвейере, однако я попытался добавить как данные реестра на вкладке реестра, так и в качестве секретов.

Реестр конвейеров

docker-registry-push:
  image: plugins/docker
  repo: registry.domain.com:5000/app
  registry: registry.domain.com:5000
  insecure: true
  pull: true

Сбой с no basic auth credentials

Наконец я попробовал подстановку переменных. (с переменными $REGISTRY_USERNAME и $$REGISTRY_USERNAME. Все приводит к ошибке msg="Error authenticating: exit status 1"

docker-registry-push:
  image: plugins/docker
  repo: registry.domain.com:5000/app
  registry: registry.domain.com:5000
  secrets:
    - source: registry_username
      target: username
    - source: registry_password
      target: password
  insecure: true
  pull: true

еще одна попытка

docker-registry-push:
  image: plugins/docker
  repo: registry.domain.com:5000/app
  registry: registry.domain.com:5000
  username: ${REGISTRY_USERNAME}  
  password: ${REGISTRY_PASSWORD}
  secrets: [ registry_username, registry_password ]
  insecure: true
  pull: true

Это действительно расстраивает. Мне нужно добавить секреты для секретного ключа доступа Rancher также после этого с помощью правильного метода.

Я читал другие темы и документы по дронам и все еще в тупике.

Заранее спасибо.

2 ответа

Решение

Секреты должны быть введены в контейнер докера через среду с именами docker_username и и docker_password,

Ваш .drone.yml файл должен выглядеть примерно так:

pipeline:
  docker:
    image: plugins/docker
    repo: username/app
    registry: registry.domain.com:5000
    insecure: true
    pull: true
    secrets:
      - source: registry_username
        target: docker_username
      - source: registry_password
        target: docker_password

Посмотрите документы по плагину drone для большего количества опций конфигурации.

Здесь для управления секретным ключом дрона http://docs.drone.io/manage-secrets/

Кроме того, вы можете рассмотреть возможность использования .netrc внутри Dockerfile на вашей сборке, так что ваши учетные данные встроены в ваши изображения докера

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