Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.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 AWS在更新后重新部署docker_Amazon Web Services_Docker_Amazon Ec2 - Fatal编程技术网

Amazon web services AWS在更新后重新部署docker

Amazon web services AWS在更新后重新部署docker,amazon-web-services,docker,amazon-ec2,Amazon Web Services,Docker,Amazon Ec2,我有一个aws ec2集群,它有一个运行任务的服务。假设任务的图像是myapp:latest 当我想要更新应用程序时,我构建一个新的docker映像并将其推送到ECR 现在,如何将新的my app:latest图像滚动到我的实例中?更新Docker图像涉及两种方法 首先,只更新docker image并推送到ECR,而不修改标记aws.abc/myimage:latest,因此,在这种情况下,您不需要更新任务定义,只需重新部署服务即可。您可以从AWS控制台或AWS cli执行此操作 aws ec

我有一个aws ec2集群,它有一个运行任务的服务。假设任务的图像是
myapp:latest

当我想要更新应用程序时,我构建一个新的docker映像并将其推送到ECR


现在,如何将新的
my app:latest
图像滚动到我的实例中?

更新Docker图像涉及两种方法

首先,只更新docker image并推送到ECR,而不修改标记aws.abc/myimage:latest,因此,在这种情况下,您不需要更新任务定义,只需重新部署服务即可。您可以从AWS控制台或AWS cli执行此操作

aws ecs update-service --cluster ec2cluster_name --service service_name --force-new-deployment
这就是你所需要的

第二个,如果您使用不同的docker image标记,那么您还需要更新指向新docker映像的任务定义并重新部署服务

注册任务定义的新版本

现在指定任务定义修订版。除docker图像标签外,其余部分将是相同的

{
  "containerDefinitions": [
  {
    "cpu": 0,
    "logConfiguration": {
      "logDriver": "awslogs",
      "options": {
        "awslogs-group": "/ecs/stage-app",
        "awslogs-region": "us-west-2",
        "awslogs-stream-prefix": "ecs"
  }
},
    "environment": [
      {
        "name": "BRANCH",
         "value":"staging"
      },
      {
        "name": "NODE_ENV",
        "value": "staging"
      }
    ],


    "memoryReservation": 400,

  "ulimits": [
    {
        "name": "nofile",
        "softLimit": 4000,
        "hardLimit": 4000
    }
],
    "image": "***.dkr.ecr.us-west-2.amazonaws.com/stage:stage",
    "dockerLabels": {
      "Name": "stage-app"
    },
    "privileged": true,
    "name": "stage-app"
  }
],

"family": "stage-app"
}
注册此修订

aws ecs注册任务定义--cli输入jsonfile://stage-nodejs.json

使用新任务定义更新服务

 aws ecs update-service --cluster cluster_name --service service_name --task-definition task_definition_name
重新部署服务


aws ecs更新服务--集群ec2cluster\u name--服务服务\u name--强制新部署

Betzael您也可以使用aws控制台执行此操作,如果您正在查找,请告诉我,以便我可以更新我的答案。