AWS Elasti c Beanstalk 'CannotPullContainerError' для частного docker изображения (несколько экземпляров) - PullRequest
1 голос
/ 05 мая 2020

У меня есть одноэкземплярная среда elasti c beanstalk, которая запускает образ docker, который размещен как частный образ на Dockerhub. Это прекрасно работает. Я пытаюсь создать новую среду с несколькими контейнерами, которая запускает одно и то же изображение (плюс еще одно, не включенное в мой пример кода здесь). В среде с несколькими контейнерами я не могу заставить elasti c beanstalk запустить мой образ docker, я получаю следующую ошибку:

ECS task stopped due to: Task failed to start. (img1_name: img2_name: CannotPullContainerError: Error response from daemon: pull access denied for user/repo, repository does not exist or may require 'docker login': denied: requested access to the resource is denied)

Вот dockerrun для моего одноэкземплярная среда:

{
  "AWSEBDockerrunVersion": "1",
  "Authentication": {
    "Bucket": "my_bucket",
    "Key": ".dockercfg"
  },
  "Image": {
    "Name": "user/repo:tag",
    "Update": "true"
  },
  "Ports": [
    {
      "ContainerPort": 5000,
      "HostPort": 443
    }
  ],
  "Logging": "/var/log/nginx"
}

И вот файл .dockerfcg:

{
    "auths": {
        "https://index.docker.io/v1/": {
            "auth": "my_token"
        }
    }
}

Опять же, все работает нормально.

Мой файл dockerrun с несколькими экземплярами выглядит следующим образом:

{
  "AWSEBDockerrunVersion": "2",
  "authentication": {
    "bucket": "my_bucket",
    "key": ".dockercfg"
  },
  "containerDefinitions": [
    {
      "name": "img_name",
      "image": "user/repo:tag",
      "essential": true,
      "memoryReservation": 128,
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 5000
        }
      ]
    }
  ],
  "Logging": "/var/log/nginx"
}

У меня есть s sh -ed в моем экземпляре elasti c -beanstalk и запустите следующее, чтобы проверить, может ли он получить доступ к .dockercfg из моего ведра s3: aws s3api get-object --bucket mybucket --key dockercfg dockercfg

Я также пробовал разные форматы для файла .dockercfg, включая ...

{
  "https://index.docker.io/v1/": {
    "auth": "zq212MzEXAMPLE7o6T25Dk0i",
    "email": "email@example.com"
  }
}
{
  "auths": {
    "https://index.docker.io/v1/": {
      "auth": "zq212MzEXAMPLE7o6T25Dk0i"
    }
  }
}

Я рву волосы из-за этого, я нашел несколько похожих тем здесь и на форумах AWS, но, похоже, ничего не решило мою проблему. Любая помощь очень ценится.

...