Извлечение изображения из концентратора Publi c Docker в AWS Elasti c Бобовый стебель - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь запустить несколько контейнеров на одном экземпляре Elasti c Beanstalk с сервером NodeJS, который прослушивает API, поступающие от клиента ReactJS / Webpack, каждый из которых работает в соответствующих контейнерах. Я использую файл Dockerrun. aws. json, который извлекает изображения из моего хранилища c docker. Когда я развертываю только Dockerrun. aws. json на Elasti c Beanstalk, он говорит, что экземпляр работает внутри консоли AWS. Однако я не могу открыть URL-адрес и получаю следующую ошибку из журналов:

mv: cannot stat ‘/etc/init/eb-ecs.conf.disabled’: No such file or directory
  Error response from daemon: No such image: 6011d33fc722:latest

Мой вопрос заключается в том, как заставить Elasti c Beanstalk тянуть и запустить контейнер на мой экземпляр EC2? Я уже пытался поместить изображение в репозитории Elasti c Container с похожим результатом.

{
    "AWSEBDockerrunVersion": 2,
    "containerDefinitions": [
        {
            "name": "dev-server",
            "image": "sjryall/dev-server-v2:latest",
            "memory": 128,
            "portMappings": [
                {
                    "hostPort": 8000,
                    "containerPort": 8000
                }
            ],
            "links": [
                "dev-client"
            ]
        },
        {
            "name": "dev-client",
            "image": "sjryall/dev-client-v2:latest",
            "memory": 128,
            "portMappings": [
                {
                    "hostPort": 80,
                    "containerPort": 80
                }
            ]
        }
    ]
}

1 Ответ

0 голосов
/ 05 марта 2020

у вас должен быть файл .dockercfg с вашей аутентификационной информацией в хранилище и его хранение в корзине s3. Это будет включать учетные данные для аутентификации в хранилище docker.

файл должен выглядеть следующим образом.

{
  "auths": {
    "https://index.docker.io/v1/": {
      "auth": "your_auth_string",
      "email": "your_email"
     }
   }
}

Тогда ваш Dockerrun.aws.json должен иметь раздел аутентификации, который определяет этот сегмент s3 и ключ, указывающий на файл, который вы только что загрузили на s3.

{
  "AWSEBDockerrunVersion": 2,
  "Authentication": {
    "Bucket": "bucket-that-contains-the-file",
    "Key": "location/.dockercfg"
  }
}

надеюсь, это поможет.

Ссылка: https://documentation.codeship.com/pro/builds-and-configuration/image-registries/

...