gpt4 book ai didi

amazon-web-services - AWS更新后重新部署Docker

转载 作者:行者123 更新时间:2023-12-02 19:03:04 27 4
gpt4 key购买 nike

我有一个带有运行任务的服务的AWS EC2集群。假设任务的图片是my-app:latest
当我想更新应用程序时,我将构建一个新的Docker镜像并将其推送到ECR。

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

最佳答案

更新Docker镜像涉及两种方法

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

aws ecs update-service --cluster ec2cluster_name --service service_name --force-new-deployment

这就是你所需要的

第二个,如果您使用不同的Docker镜像标记,则还需要更新任务定义,该定义将指向新的Docker镜像并重新部署服务。

注册新版本的任务定义

现在指定任务定义修订。除docker image标记外,其余内容将相同。
{
"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 register-task-definition --cli-input-json file://stage-nodejs.json
使用新的任务定义更新服务
 aws ecs update-service --cluster cluster_name --service service_name --task-definition task_definition_name

重新部署服务
aws ecs update-service --cluster ec2cluster_name --service service_name --force-new-deployment

关于amazon-web-services - AWS更新后重新部署Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57023197/

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