Изображение Docker AWS ElasticBeanstalk pull из реестра Gitlab - PullRequest
0 голосов
/ 25 ноября 2018

У меня проблемы с переносом образа Docker из частного реестра Gitlab в среду AWS MultiContainer ElasticBeanstalk.

Я добавил .dockercfg в S3 в том же регионе, что и мой кластер, а также позволил роли IAM роли aws -asticbeanstank-ec2-role для получения данных из S3.

ElasticBeanstalk всегда возвращает ошибку CannotPullContainerError: ошибка API (500)

My .dockercfg имеет следующий формат:

{
    "https://registry.gitlab.com" : {
      "auth" : “my gitlab deploy token“,
      "email" : “my gitlab token name“
    }
}

Внутри Dockerrun.aws.json Я добавил следующее

  "authentication": {
    "bucket": "name of my bucket",
    "key": ".dockercfg"
  },

Когда я пытаюсь войти через docker login -u gitlabtoken-name -p token, он работает отлично.

1 Ответ

0 голосов
/ 08 декабря 2018

Маркер развертывания gitlab не является ключом аутентификации.

Чтобы сгенерировать правильный ключ аутентификации, я обычно делаю следующее:

docker run -ti docker:dind sh -c "docker login -u name -p deploy-token registry.gitlab.com && cat /root/.docker/config.json"

, и он печатает что-то вроде:

{
  "auths": {
    "registry.gitlab.com": {
      "auth": "your-auth-key"
    }
  },
  "HttpHeaders": {
    "User-Agent": "Docker-Client/18.09.0 (linux)"
  }
}

Затем, согласно документам эластичных бобов "Использование изображений из частного репозитория" , вы должны взять только то, что ему нужно.

Надеюсь, это поможет вам!

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