gpt4 book ai didi

docker - 如何替换已弃用的 aws ecr get-login --registry-ids

转载 作者:行者123 更新时间:2023-12-05 01:10:36 28 4
gpt4 key购买 nike

我正在尝试按照 example 提取其中一个 Amazon SageMaker Pytorch 公共(public)图像.在示例中,他们使用 shell 脚本和 Dockerfile 来拉-扩展-构建容器并将其推送到 ECR。这是shell脚本:

# The name of our algorithm
algorithm_name=pytorch-extending-our-containers-cifar10-example

cd container

account=$(aws sts get-caller-identity --query Account --output text)

# Get the region defined in the current configuration (default to us-west-2 if none defined)
region=$(aws configure get region)
region=${region:-us-west-2}

fullname="${account}.dkr.ecr.${region}.amazonaws.com/${algorithm_name}:latest"

# If the repository doesn't exist in ECR, create it.

aws ecr describe-repositories --repository-names "${algorithm_name}" > /dev/null 2>&1

if [ $? -ne 0 ]
then
aws ecr create-repository --repository-name "${algorithm_name}" > /dev/null
fi

# Get the login command from ECR and execute it directly
# ( PROBLEM 1 )
$(aws ecr get-login --region ${region} --no-include-email)

# Get the login command from ECR in order to pull down the SageMaker PyTorch image
# ( PROBLEM 2 )
$(aws ecr get-login --registry-ids 520713654638 --region ${region} --no-include-email)

# Build the docker image locally with the image name and then push it to ECR
# with the full name.

docker build -t ${algorithm_name} . --build-arg REGION=${region}
docker tag ${algorithm_name} ${fullname}

docker push ${fullname}

但是,他们使用 aws ecr get-login 来访问 ECR。 get-login 现在已弃用,取而代之的是 get-login-password 并在 awscli 2.0.3 中运行此 shell 脚本。失败。如果我理解正确,那么第一个命令(问题 1)可以替换为:

$(aws ecr get-login-password --region ${region} | docker login --username AWS --password-stdin ${account}.dkr.ecs.${region}.amazonaws.com)

但是,第二个命令需要 --registry-ids 标志,get-login-password 无法识别该标志。如何替换此命令,以便我可以 docker login 从外部 ECR 注册表中提取其中一个 SageMaker 镜像?

最佳答案

我将 (1) 替换为:

$(aws ecr get-login-password --region ${region} |docker login --username AWS --password-stdin ${account}.dkr.ecr.${region}.amazonaws.com)

和(2)与:

$(aws ecr get-login-password --region ${region} |docker login --username AWS --password-stdin 763104351884.dkr.ecr.${region}.amazonaws.com)

所以注册表 ID 替换了 {account}。看起来旧的 id 也关闭了,我将 520713654638 切换为 763104351884 ,还将 Dockerfiles 导入切换为:

FROM 763104351884.dkr.ecr.$REGION.amazonaws.com/pytorch-training:1.6.0-gpu-py36-cu101-ubuntu16.04

在运行脚本之后,成功拉取、构建和推送 docker,我可以继续。

关于docker - 如何替换已弃用的 aws ecr get-login --registry-ids,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63994965/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com