ci(docker): simplify server image cleanup
This commit is contained in:
@@ -68,19 +68,20 @@ prune_project_images() {
|
|||||||
|
|
||||||
echo "=== prune local project images: keep $retain_count for $tag_prefix ==="
|
echo "=== prune local project images: keep $retain_count for $tag_prefix ==="
|
||||||
|
|
||||||
docker image ls "$image_repo" \
|
if [ "$retain_count" -eq 1 ]; then
|
||||||
--format '{{.Repository}}:{{.Tag}} {{.CreatedAt}}' \
|
docker image ls "$image_repo" --format '{{.Repository}}:{{.Tag}} {{.ID}}' \
|
||||||
|
| awk -v prefix="$tag_prefix" -v current="$IMAGE" \
|
||||||
|
'$1 ~ ":" prefix && $1 !~ /-latest$/ && $1 != current { print $1 }' \
|
||||||
|
| xargs -r docker rmi || true
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker image ls "$image_repo" --format '{{.Repository}}:{{.Tag}} {{.CreatedAt}}' \
|
||||||
| awk -v prefix="$tag_prefix" '$1 ~ ":" prefix && $1 !~ /-latest$/ { print }' \
|
| awk -v prefix="$tag_prefix" '$1 ~ ":" prefix && $1 !~ /-latest$/ { print }' \
|
||||||
| sort -k2,3r \
|
| sort -k2,3r \
|
||||||
| awk -v keep="$retain_count" 'NR > keep { print $1 }' \
|
| awk -v keep="$retain_count" -v current="$IMAGE" \
|
||||||
| while IFS= read -r old_image; do
|
'NR > keep && $1 != current { print $1 }' \
|
||||||
[ -n "$old_image" ] || continue
|
| xargs -r docker rmi || true
|
||||||
if [ "$old_image" = "$IMAGE" ]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
echo "Removing local image: $old_image"
|
|
||||||
docker image rm "$old_image" || true
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
prune_project_images "$SERVER_RETAIN_COUNT"
|
prune_project_images "$SERVER_RETAIN_COUNT"
|
||||||
|
|||||||
Reference in New Issue
Block a user