Xoá images không gắn tag trên ECR

Vấn đề là khi thực hiện build một image mới,  Amazon ECR vẫn giữ lại image cũ mà không có đánh tag. Điều đó có nghĩa images chuyển sang non-tagged và chúng không thực sự cần thiết. Do đó chúng ta hoàn toàn có thể xoá bỏ chúng.

Ở bài viết này mình chia sẻ các bạn một scripts để loại bỏ các images không gắn tag này trên ECR

1. Yêu cầu

Yêu cầu bạn cần có một tài khoản AWS. Bạn nào mới tìm hiểu về AWS thì có thể xem thêm thông tin tại đây Đăng kí lần đầu thì hoàn toàn miễn phí theo 3 loại bên dưới.

aws-account-free

Tiếp đến, bạn tạo một ECR trên tài khoản AWS của mình. Trong ô tìm kiếm các bạn gõ ECR.

ecr


Tiếp theo, các bạn tạo một repository bằng cách bấm create repository. Sau đó bắt đầu thử build một docker image và push lên repository này. Các bạn build và push nhiều lần lên repository và gắn tag duy nhất là latest. Lúc này thì chỉ tag mới nhất thì được gắn là lastest còn các tag trước đó sẽ chuyển sang non-tagged. Đại loại như hình bên dưới

2. Xoá images không gắn tag

Để xoá xoá images không gắn tag. Các bạo một scripts như sau:

nano ecr-delete-images-untaged.sh

Thêm nội dung sau

#!/bin/bash

REPOS=$(aws ecr describe-repositories --region ap-southeast-1 --profile <kienletv> --query 'repositories[].repositoryName' --output text)
for repo in $REPOS; do
TAGS=$(aws ecr list-images --region ap-southeast-1 --profile kienle --repository-name $repo --filter tagStatus=UNTAGGED --query 'imageIds[].imageDigest' --output text)
for tag in $TAGS; do
echo "Deleting image: $tag"
aws ecr batch-delete-image --region ap-southeast-1 --profile kienle --repository-name $repo --image-ids imageDigest=$tag > /dev/null
done
done
exit

Chú ý: thay thế profile AWS đang sử dụng.

Lưu lại và thoát

Cấp quyền và thực thi

chmod +x  ecr-delete-images-untaged.sh
sh ecr-delete-images-untaged.sh

Đợi kết quả

Chúc các bạn thành công!

Subscribe
Notify of
guest
0 Góp ý
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x