Как определить образ частного репо в Gitlab Runner

У меня есть регистр бегуна gitlab с исполнителем docker+machine, и я установил свой `.gitlab-ci.yml ', как показано ниже:

stages:
  - RUN_TESTS
  - CLEAN

image:
  name: <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<NAMESPACE>:<TAG>

И образ <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<NAMESPACE>:<TAG> является частным AWS репозиторием ECR. И он каждый раз терпит неудачу, поскольку это частный репозиторий.

Как я могу настроить это для получения этого личного образа?

Я получил пароль ecr с помощью команды aws ecr get-login-password --region us-east-2, и он дал пароль.

Я изучил этот docker-credential-ecr-login инструмент и установил его в экземпляре бегуна. И я настроил учетные данные AWS, используя aws configure, и теперь учетные данные находятся на ~/.aws/credentials

А также добавьте следующий блок в ~/.docker/config.json, как показано ниже:

"credHelpers": {
        "<aws_account_id>.dkr.ecr.<region>.amazonaws.com": "ecr-login"
    }

Но когда я пытаюсь docker pull <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<NAMESPACE>:<TAG>, я получаю следующую ошибку:

Ответ демона об ошибке: получите https://Account-ID.dkr.ecr.REGION.amazonaws.com/v2/spot-runner-image/manifests/latest: нет базовых учетных данных

Есть какое-то отношение к docker-credential-ecr-login


person Jananath Banuka    schedule 23.01.2021    source источник


Ответы (1)


Вы получаете эту ошибку, потому что ваш бегун (и / или задание) не аутентифицируется в реестре ECR, прежде чем он попытается получить изображение. Вам нужно будет предоставить данные аутентификации в одной из следующих форм:

Документация по настройке DOCKER_AUTH_CONFIG находится здесь: https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#define-an-image-from-a-private-container-registry.

Чтобы определить, что должно быть в переменной DOCKER_AUTH_CONFIG, вы можете войти в реестр с локального компьютера с помощью docker login example-registry.example.com --username my_user --password my_password. Это создаст файл config.json в каталоге ~/.docker. Однако на моем Mac учетные данные хранятся в моей связке ключей, и файл config.json не может использоваться Gitlab. В этом случае вам придется создавать контент вручную. Вся эта и многое другое находится в документации: https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#determining-your-docker_auth_config-data

person Adam Marshall    schedule 27.01.2021