如何拉取 AWS Lambda 容器镜像

Dir*_*tra 2 amazon-web-services docker amazon-ecr

我正在尝试在 AWS Lambda 上运行 Docker 容器。具体来说,我正在关注这个官方教程

我有以下 Dockerfile

FROM public.ecr.aws/lambda/nodejs:12

COPY app app.js package.json /var/task/
RUN npm install

CMD [ "app.handler" ]
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试构建它时,出现以下错误:

docker build -t hello-world .

Sending build context to Docker daemon  4.608kB
Step 1/4 : FROM public.ecr.aws/lambda/nodejs:12
pull access denied for public.ecr.aws/lambda/nodejs, repository does not exist or may require 'docker login': denied: Your authorization token has expired. Reauthenticate and try again.
Run Code Online (Sandbox Code Playgroud)

当我使用docker login命令登录时,我仍然遇到相同的错误。

有谁知道如何解决这个问题?

Sat*_*hat 6

在这里工作正常。您不应该需要公共 ECR 的凭据(您可以特定情况下使用 auth ),但如果您只想使用它,请删除现有凭据

docker logout public.ecr.aws
Run Code Online (Sandbox Code Playgroud)

然后再次尝试构建。

也就是说,如果您仍然想使用身份验证,则需要按照文档中的描述重新进行身份验证

aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
Run Code Online (Sandbox Code Playgroud)