Increment an active task definition on ECS with an updated Docker image.
5.1K
A script to increment an active task definition on ECS with an updated Docker image, followed by a service update to use it.
Sequence of steps performed by the script:
In order to roll a blue/green deployment there must be spare capacity available to spin up a task based on your updated task definition. If there's not capacity to do this your deployment will fail.
An alternate option provided by this tool is --kill-task. This will attempt to stop an existing task, making way for the blue/green rollout.
This has obvious implications, reducing your horizontal scale by one during the deployment. If you're only running a single task you'll experience some down time. Use at your own risk.
docker run stead/ecs-task-deploy [options]
Options:
-h, --help output usage information
-V, --version output the version number
-k, --aws-access-key <k> aws access key, or via AWS_ACCESS_KEY_ID env variable
-s, --aws-secret-key <k> aws secret key, or via AWS_SECRET_ACCESS_KEY env variable
-r, --region <r> aws region, or via AWS_DEFAULT_REGION env variable.
-c, --cluster <c> ecs cluster, or via AWS_ECS_CLUSTER env variable
-n, --service <n> ecs service, or via AWS_ECS_SERVICE_NAME env variable
-i, --image <i> docker image for task definition, or via AWS_ECS_TASK_IMAGE env variable
-t, --timeout <t> max timeout (sec) for ECS service to launch new task, defaults to 180s
-v, --verbose enable verbose mode
--kill-task stop a running task to allow space for a rolling blue/green deployment
docker run --rm \
-e AWS_DEFAULT_REGION=<region> \
-e AWS_ACCESS_KEY_ID=<key> \
-e AWS_SECRET_ACCESS_KEY=<secret> \
stead/ecs-task-deploy \
-c <cluster> \
-n <service-name> \
-i <image-name> \
-v
docker run --rm stead/ecs-task-deploy \
-k <key> \
-s <secret> \
-r <region> \
-c <cluster> \
-n <service-name> \
-i <image-name>
Content type
Image
Digest
Size
31.5 MB
Last updated
over 8 years ago
docker pull stead/ecs-task-deploy