amazon-web-services - 如何将更新的容器映像推送到 AWS ECR?
问题描述
所以我对容器和相关术语的理解充其量是微不足道的,所以如果我说的完全不正确,请纠正我。
我有一个作为容器实例发布的 Lambda 函数。我成功推送了我的容器并运行了我的 Lambda 代码,该代码有一个错误(旁注:真的没有其他方法可以测试微小的代码更改,而不是每次都重建和推送整个容器吗?我没有使用 SAM,它是我后悔并坚持的决定)。
我去修复了这个错误,我唯一能找到的就是原始命令:
docker build -T CONTAINER-NAME .
aws ecr create-repository --repository-name CONTAINER-NAME --image-scanning-configuration scanOnPush=true
docker tag CONTAINER-NAME:latest 1234.dkr.ecr.us-west-2.amazonaws.com/CONTAINER-NAME:latest
aws ecr get-login-password | docker login --username AWS --password-stdin 1234.dkr.ecr.us-west-2.amazonaws.com
docker push 1234.dkr.ecr.us-west-2.amazonaws.com/CONTAINER-NAME:latest
这些第一次运行良好,但现在运行没有错误,但不要更新我的图像。我怀疑它与标签有关,文档非常不清楚 - 它们只是像其他 AWS 资源一样的标签,还是更多?我已经尝试过更改标签的不同组合,这通常会导致给定标签或 repo 不存在的错误。
解决方案
docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
您可以尝试使用这些代码,创建具有不同标签的新图像。我的是使用日期命令来分隔标签。你指定了最新的标签,运行环境已经有了,所以不会拉新的。
推荐阅读
- react-native - react-native 启动冻结系统 .100% cpu 使用率和 HIP 增加
- oauth-2.0 - @feathersjs/authentication-oauth2 不创建 JWT 和用户
- python - Python - 用于读取数据的熊猫数据框或数据类实例数组?
- python - 用指针找到第二大数的问题
- firebase - “JSON 中的意外令牌}”(通过 Zapier 连接的 Firestore)
- angular - 使用异步时找不到管道“orderBy”错误
- typescript - 网页/WebGL/Three.js 中的 Newtek NDI 流
- haskell - 为什么`fmap(取10)。序列 。fmap return $ [1..] :: m [Int]` 仅适用于某些 monad?
- r - R list - 组合具有相同名称的元素
- go - 如何在使用 Golang 和 gin-gonic 动态创建的 HTML 中渲染/显示图像