docker 如何拉取AWS Lambda容器镜像

b1payxdu  于 2023-06-21  发布在  Docker
关注(0)|答案(2)|浏览(173)

我正在尝试在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" ]

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

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.

当我使用docker login命令登录时,我仍然得到相同的错误。
有人知道如何解决这个问题吗?

nuypyhwy

nuypyhwy1#

在这里工作得很好。您不需要公共ECR的凭据(您可以对specific cases使用auth),但如果您只想使用它,请删除现有凭据

docker logout public.ecr.aws

然后再次尝试构建。
也就是说,如果您仍然希望使用身份验证,则需要按照文档中的描述重新进行身份验证

aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
rdrgkggo

rdrgkggo2#

运行命令:docker logout public.ecr.aws
详细信息:我在尝试为sam(无服务器应用程序模型)拉取图像时遇到了类似的错误,如下所示:

Building codeuri: /Users/Machine1/Documents/tech/sam-demo/sklearn-sam-inference-demo runtime: None metadata: {'Dockerfile': 'Dockerfile', 'DockerContext':           
'/Users/Machine1/Documents/tech/sam-demo/sklearn-sam-inference-demo/app', 'DockerTag': 'python3.9-v1'} architecture: x86_64 functions: InferenceFunction             
Building image for InferenceFunction function                                                                                                                        
Setting DockerBuildArgs: {} for InferenceFunction function                                                                                                           
Step 1/6 : FROM public.ecr.aws/lambda/python:3.9

Build Failed
Error: InferenceFunction failed to build: pull access denied for public.ecr.aws/lambda/python, repository does not exist or may require 'docker login': denied: Your authorization token has expired. Reauthenticate and try again.

根据官方文档,要解决此问题,您可以重新验证到Amazon ECR Public,也可以从Amazon ECR Public注册表中注销Docker CLI,然后重新尝试提取未经验证的映像。

docker logout public.ecr.aws

相关问题