Вычислительный и сервисный аккаунт Google для доступа к реестру

У меня есть частный хост gitlab, и я хочу добавить несколько бегунов на gcp. Итак, у меня есть:

  • создать учетную запись службы (с правами редактора в проекте)
  • создайте вычислительный экземпляр (с именем gitlab-runner) с Ubuntu 16.04 и связанной учетной записью службы.
  • установить на него gitlab-runner/kubectl/docker-ce
  • зарегистрировать бегун типа shell
  • зарегистрировать бегун типа docker

У оболочки бегуна нет проблем.

Докер-бегун? ну... работает с чем-то вроде этого

exemple:
  stage: build
  image: google/cloud-sdk:latest
  tags:
    - runner-docker
  script:
    - # do something here

Моя проблема заключается в том, что я хочу использовать изображение, которое я ранее создал следующим образом:

exemple2:
  stage: build
  image: eu.gcr.io/project/image_name:$CI_COMMIT_SHA
  tags:
    - runner-docker
  script:
    - # do something here

Когда я это делаю, gitlab-runner не может вытащить изображение.

Итак, я пробовал что-то вроде этого: Доступ к реестру контейнеров Google без клиент gcloud

Затем, когда я подключаюсь к gitlab-runner (через ssh), у меня нет проблем с получением.

Но бегун не может.

Любая идея, что происходит не так?


Я сделал временный gitlab-ci.yml следующим образом:

stage:
  - build
  - test

variables:
  CI_DEBUG_TRACE: "true"

test_gcloud_shell:
  stage: build
  tags:
    - shell
  before_script:
    - echo "disable before script"
  script:
    - docker run --rm eu.gcr.io/project/image_name:latest

test_gcloud_docker:
  stage: test
  image: eu.gcr.io/project/image_name:latest
  tags:
    - docker
  before_script:
    - echo "disable before script"
  script:
    - echo "hello"

Задача test_gcloud_shell работает без проблем, но не test_gcloud_docker. Любой идентификатор?


person Djabx    schedule 02.04.2018    source источник


Ответы (1)


Вы установили DOCKER_AUTH_CONFIG? См. документацию GitLab и похожая проблема.

Возможно, вам потребуется использовать JSON-файл сервисного аккаунта, если вам нужны долгоживущие учетные данные.

person jonjohnson    schedule 02.04.2018
comment
.dockercfg и .docker/config имеют ~50 строк (из .docker/config), скопированных в DOCKER_AUTH_CONFIG в my config.toml. После этого я перезагрузил машину, и она все еще не работает... - person Djabx; 03.04.2018