将图像推送到 ECR 时,我使用“最新”标签。我在 UI 中停止该任务,期望当 Fargate 自动重新启动该任务时,将使用该“最新”图像,但它却使用旧图像。我缺少什么?我已经使用这个方法很多年了,但它刚刚失效了。
我正在使用这个文档,但文本实际上并没有说明任务是否被缓存:
每个 Fargate 任务都在其自己的单用途、单租户实例上运行。当您在 Fargate 上运行 Linux 容器时,容器映像或容器映像层不会缓存在实例上。因此,对于任务中定义的每个容器映像,需要从每个 Fargate 任务的容器映像注册表中提取整个容器映像。
如果我删除旧图像,它当然会导致
CannotPullContainerError
。
解决方法是更改任务定义,从使用“最新”更新为使用图像的 sha,但我更愿意先找出我是否做错了什么。另一种可能是“强制部署”——我会先尝试一下。