Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 任务相同但docker镜像不同的ECS更新服务_Amazon Web Services_Docker_Amazon Ecs_Codeship - Fatal编程技术网

Amazon web services 任务相同但docker镜像不同的ECS更新服务

Amazon web services 任务相同但docker镜像不同的ECS更新服务,amazon-web-services,docker,amazon-ecs,codeship,Amazon Web Services,Docker,Amazon Ecs,Codeship,我是一个问题,要么我不太了解,要么aws ecs服务发生了一些奇怪的事情 我更新我的代码,创建一个新的docker映像,并将其推送到ECS部署。问题是,当任务定义没有更改时,即使ECR中的映像已更新,代码也不会部署。那么如何部署我的代码呢?我假设,当映像发生更改时,服务将运行已经注册的任务,而这些任务应该将映像拉到正确的位置 我运行的命令示例 第一次运行这些命令时,代码已部署,如果我更新代码,将新映像推送到注册表,然后运行这些命令,则不会部署代码。为了使用更新的映像更新容器,您必须使用存储库中的

我是一个问题,要么我不太了解,要么aws ecs服务发生了一些奇怪的事情

我更新我的代码,创建一个新的docker映像,并将其推送到ECS部署。问题是,当任务定义没有更改时,即使ECR中的映像已更新,代码也不会部署。那么如何部署我的代码呢?我假设,当映像发生更改时,服务将运行已经注册的任务,而这些任务应该将映像拉到正确的位置

我运行的命令示例
第一次运行这些命令时,代码已部署,如果我更新代码,将新映像推送到注册表,然后运行这些命令,则不会部署代码。

为了使用更新的映像更新容器,您必须使用存储库中的最新映像修改任务定义,然后,应该使用您定义的新任务定义更新您的服务


看起来您的思路是正确的,但我假设json文件正在使用相同的图像修改您的任务定义。如果是这种情况,您只需将映像的标记更改为:latest,以便每次都可以使用相同的json运行相同的命令。

每次更新ECR时都会拉取更新。
仔细检查确认更新版本的方式。

我正在使用自定义标记,然后推送具有相同标记的新图像。因此不需要新的任务定义,因为标记仍然相同,但图像已更新。它似乎没有检查该图像的更新版本
aws ecs register-task-definition --cli-input-json file:///deploy/tasks/my-task-definition.json

aws ecs update-service --service my-service --cluster my-clusdter --task-definition my-task-defintion