Search code examples
amazon-web-servicesamazon-ec2aws-cli

AWS CLI: ECR list-images, get newest


Using AWS CLI, and jq if needed, I'm trying to get the tag of the newest image in a particular repo.

Let's call the repo foo, and say the latest image is tagged bar. What query do I use to return bar?

I got as far as

aws ecr list-images --repository-name foo

and then realized that the list-images documentation gives no reference to the date as a queryable field. Sticking the above in a terminal gives me keypairs with just the tag and digest, no date.

Is there still some way to get the "latest" image? Can I assume it'll always be the first, or the last in the returned output?


Solution

  • You can use describe-images instead.

    aws ecr describe-images --repository-name foo 
    

    returns imagePushedAt which is a timestamp property which you can use to filter.

    I dont have examples in my account to test with but something like following should work

    aws ecr describe-images --repository-name foo \
    --query 'sort_by(imageDetails,& imagePushedAt)[*]'
    

    If you want another flavor of using sort method, you can review this post