你检查了aws ecs
command-line tool?它允许编写一个简单的bash脚本来更新任务和服务:
cluster='<cluster-id>'
service='<service-id>'
project='<project-name>'
elb='<ELB-id>'
version=$(git rev-parse --short=12 HEAD)
sed "s#{image}#${repo}:app-${version}#g" ./docker-compose.yml | sed "s#{frontend}#${repo}:frontend-${version}#g" | sed "s#{logger}#${repo}:logger-${version}#g"> /tmp/docker-compose.yml
ecs-cli compose --file /tmp/docker-compose.yml --project-name ${project} create
taskDefinition=$(aws ecs list-task-definitions --family-prefix "ecscompose-${project}" --output text --sort DESC | awk '{print $2}' | head -n 1)
if [[ $(aws ecs list-services --cluster "${cluster}" --output text) =~ ${service} ]]; then
aws ecs update-service --cluster "${cluster}" --service ${service} --task-definition "$taskDefinition" >> /dev/null
else
aws ecs create-service --cluster "${cluster}" --service ${service} --task-definition "$taskDefinition" --load-balancers loadBalancerName=${elb},containerName=nginx,containerPort=80 --desired-count 5 --role arn:aws:iam::395910257915:role/ecsServiceRole
fi
来源
2017-03-03 21:18:45
max