Elastic Beanstalk:身份验证不起作用?

Elastic Beanstalk:身份验证不起作用?

我正在尽力将我的 ECS 实例连接到 gitlab 中的私有注册表。我已将 .dockercfg 文件上传到与主 EB 环境位于同一区域的存储桶,并按照文档中的说明引用它:

{
    "AWSEBDockerrunVersion": 2,
    "authentication": {
        "bucket": "xxxx",
        "key": ".dockercfg"
    },
    "volumes": [
        {
            "name": "redis",
            "host": {
                "sourcePath": "/var/app/volumes/redis"
            }
        }
    ],
    "containerDefinitions": [
        {
            "name": "core",
            "image": "registry.gitlab.com/newsletter3/newsletter:latest",
            "hostname": "core",
            "essential": true,
            "portMappings": [
                {
                    "hostPort": 80,
                    "containerPort": 8012
                }
            ],
            "links": ["redis"],
            "memory": 600
        },
        {
            "name": "redis",
            "image": "redis:6.2-alpine",
            "hostname": "redis",
            "essential": true,
            "memory": 300,
            "portMappings": [
                {
                    "hostPort": 6379,
                    "containerPort": 6379
                }
            ],
            "mountPoints": [
                {
                    "sourceVolume": "redis",
                    "containerPath": "/cache",
                    "readOnly": false
                }
            ]
        }
    ]
}

我通过创建新的部署令牌并使用 base64 对其进行编码来创建我的 .docker cfg 文件。

echo “AWS:GYqZmZxxxxxxxxxx” | tr -d “\n” | base64

生成的文件如下所示:

{
    "registry.gitlab.com": {
        "auth": "xxxxNWQK"
    }
}

我还尝试了第二种格式,带有一个封闭的“auths”对象(docker 存储的方式config.json)。

无论我尝试什么,我都会看到这样的错误:

level=error time=2022-05-10T20:56:28Z msg="DockerGoClient:无法拉取映像 registry.gitlab.com/xxxx/xxxx:[CannotPullContainerError] 守护进程的错误响应:Head "https://registry.gitlab.com/v2/xxx/xxxx/manifests/latest":未经授权:HTTP Basic:访问被拒绝" module=docker_client.go

我还在文档中搜索了有关 elastic beanstalk 从 s3 存储桶下载我的身份验证文件的任何参考,但未能找到任何参考。

我不确定文档是否已经过时并且“身份验证”选项不再存在。

相关内容