Я изо всех сил стараюсь подключить свой экземпляр ECS к частному реестру в gitlab. Я загрузил файл .dockercfg в корзину в том же регионе, что и основная среда EB, и сослался на него, как описано в документации:
{
"AWSEBDockerrunVersion": 2,
"аутентификация": {
"ведро": "хххх",
"ключ": ".dockercfg"
},
"тома": [
{
"имя": "редис",
"хозяин": {
"sourcePath": "/var/app/volumes/redis"
}
}
],
"определения контейнера": [
{
"имя": "ядро",
"image": "registry.gitlab.com/newsletter3/newsletter:latest",
"имя хоста": "ядро",
«необходимый»: правда,
"сопоставления портов": [
{
"хостПорт": 80,
"контейнерный порт": 8012
}
],
"ссылки": ["редис"],
"память": 600
},
{
"имя": "редис",
"image": "redis:6.2-alpine",
"имя хоста": "редис",
«необходимый»: правда,
"память": 300,
"сопоставления портов": [
{
"хостПорт": 6379,
"КонтейнерПорт": 6379
}
],
"точки монтирования": [
{
"sourceVolume": "редис",
"Путь к контейнеру": "/кэш",
«Только для чтения»: ложь
}
]
}
]
}
Я создал свой файл .docker cfg, создав новый токен развертывания и закодировав его с помощью base64.
echo «AWS:GYqZmZxxxxxxxxxx» | tr -d â\nâ | base64
И результирующий файл выглядит так:
{
"registry.gitlab.com": {
"авторизация": "xxxxNWQK"
}
}
Я также пробовал второй формат с охватывающим объектом «auths» (способ, которым докер хранит config.json
).
Что бы я ни пытался, я продолжаю видеть такие ошибки:
level=error time=2022-05-10T20:56:28Z msg="DockerGoClient: не удалось
вытащить изображение из реестра.gitlab.com/xxxx/xxxx:
[CannotPullContainerError] Ошибка ответа от демона: Head
«https://registry.gitlab.com/v2/xxx/xxxx/manifests/latest»:
неавторизованный: базовый HTTP: доступ запрещен" module=docker_client.go
Я также искал в документах любую ссылку на эластичный beanstalk, загружающий мой файл аутентификации из ведра s3, но не смог найти никакой ссылки.
Я не уверен, что документы устарели, а опция «аутентификация» больше не существует.