Как правильно войти в систему, чтобы использовать частные изображения из GCR в Gitlab-CI? - PullRequest
1 голос
/ 25 мая 2019

Я пытаюсь войти в CGR и использовать некоторые личные образы докеров в Gitlab-ci runner.

Я создал новый проект в Google Cloud и активировал API-интерфейс реестра Google Cloud.Я также создал новую учетную запись службы (IAM), в которой дал разрешение на владение предыдущему экземпляру Cloud Registry.Затем я достал ключ JSON.Я протестировал ключ со следующей конфигурацией gitlab-ci и на локальной машине:

image: docker:latest
services:
  - docker:dind
auth:
  stage: auth
  script:
    - docker login -u _json_key --password-stdin https://gcr.io < ./keyfile.json

Кажется, что он аутентифицирован и авторизован для загрузки / извлечения образов.

Что мне нужно сделатьчтобы получить следующее, мне нужно зайти в свой личный репозиторий и использовать эти изображения в gitlab-ci runner.Примерно так:

before_script:
    - docker login -u _json_key --password-stdin https://gcr.io < ./keyfile.json

build:
  stage: build
  image: gcr.io/image-repo/image
  script:
    - gradle clean build

deploy:
  stage: deploy
  image: gcr.io/image-repo/image
  script:
    - gradle publish
  only:
    - master

Тем не менее, я продолжаю получать эту ошибку:

Запуск с gitlab-runner 11.10.1 (1f513601) в docker-auto-scale 0277ea0f ИспользованиеИсполнитель Docker с изображением gcr.io/image-repo/image ... Извлечение образа Docker gcr.io/image-repo/image ... ОШИБКА: Подготовка не удалась: Ошибка ответа от демона: неавторизовано: у вас нет необходимыхразрешения для выполнения этой операции, и у вас могут быть неверные учетные данные.Чтобы подтвердить подлинность вашего запроса, выполните следующие действия: https://cloud.google.com/container-registry/docs/advanced-authentication (executor_docker.go: 168: 0s). Повторите попытку через 3 с ...

1 Ответ

0 голосов
/ 27 мая 2019

Я достиг практического решения:

Нужно использовать службу wind для сброса конфигурации докера, а затем войти в систему, например, на своем локальном компьютере, используя:

docker login -u _json_key --password-stdin https://gcr.io < ./keyfile.json

Затем просто скопируйте конфигурацию, представленную в ~/.docker/config.json к переменной DOCKER_AUTH_CONFIG в Gitlab CI, и вы готовы идти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...