Как мне войти в AWS перед извлечением изображения из ECR?

#gitlab-ci #gitlab-ci-runner #amazon-ecr

#gitlab-ci #gitlab-ci-runner #amazon-ecr

Вопрос:

Я загружаю изображение в свой конвейер из ECR. Сначала мне нужно пройти аутентификацию с помощью eval $(aws ecr get-login --region eu-west-2 --no-include-email | sed 's|https://||')

однако я понятия не имею, как использовать его в рабочем процессе CI, поскольку это должно выполняться до извлечения изображения:

 e2e:
  stage: test
  image: 2xxxxxxxxxxxxx8.dkr.ecr.eu-west-2.amazonaws.com/training-users_db
  services:
   - postgres:12.2-alpine
  variables:
    AWS_ACCOUNT_ID: $AWS_ACCOUNT_ID
    AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
    AWS_SECRET_KEY: $AWS_SECRET_ACCESS_KEY
    POSTGRES_DB: users
    POSTGRES_USER: postgres
    POSTGRES_PASSWORD: postgres
    DATABASE_TEST_URL: postgres://postgres:postgres@postgres:5432/users
    FLASK_ENV: development
    SECRET_KEY: $SECRET_KEY
  script:
    - eval $(aws ecr get-login --region eu-west-2 --no-include-email | sed 's|https://||')
 

Как я могу войти в ECR прямо перед извлечением изображения?

Комментарии:

1. Вы используете общий бегун gitlab или бегун, использующий EC2?

2. @Thorax Я использую общие бегуны.

Ответ №1:

Это самое близкое, что я нашел для документации по этому вопросу: https://mherman.org/blog/gitlab-ci-private-docker-registry / Но я еще не смог заставить его работать так, как описано. Я все еще получаю некоторые ошибки аутентификации, когда он пытается извлечь мое изображение. У меня открыт запрос в службу поддержки, чтобы попытаться разобраться, но, может быть, вы сможете заставить его работать?

Комментарии:

1. Спасибо за ссылку. Я реализовал то, что узнал из сообщения в блоге. Пока не работает. По-прежнему выдает «нет базовых учетных данных для авторизации». Я обратился к автору сообщения, если он может предоставить более подробную информацию.