AWS CLI: ECR list-images, get newest

Alex picture Alex · Apr 10, 2017 · Viewed 17.8k times · Source

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?

Answer

Frederic Henri picture Frederic Henri · Apr 10, 2017

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