2022年6月28日火曜日

AWS CLIでecrのlatestをひとつ前にもどす

 お試しでpushしたdockerイメージがうまく動かなかったときとか用。

pushしたlatestを削除して、そのひとつ前のものにlatestをつけなおすスクリプト


#!/bin/bash
REPO_NAME='myRepository'
# latestの削除
aws ecr batch-delete-image --repository-name ${REPO_NAME} --image-ids imageTag=latest
# 以降のコマンドでimage-ids指定のために、一番新しいイメージのdigestを取得
IMAGES=$(aws ecr describe-images --repository-name ${REPO_NAME})
TARGET=$(echo ${IMAGES} | jq -r '.imageDetails | sort_by(.imagePushedAt) | reverse | map(.imageDigest) | .[0]')
MANIFEST=$(aws ecr batch-get-image --repository-name ${REPO_NAME} --image-ids imageDigest=${TARGET} --query 'images[].imageManifest' --output text)
aws ecr put-image --repository-name ${REPO_NAME} --image-manifest "${MANIFEST}" --image-tag latest