From 390c2092bc3a78f4619ad8c2ff3d6e491a1da1ab Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 18 Feb 2025 09:56:28 +0800
Subject: [PATCH] 增加镜像删除脚本

---
 rmi_his_image.sh |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/rmi_his_image.sh b/rmi_his_image.sh
new file mode 100644
index 0000000..84f0415
--- /dev/null
+++ b/rmi_his_image.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+# 删除历史版本镜像
+# 镜像仓库地址
+REGISTRY=registry.cn-hangzhou.aliyuncs.com
+# 镜像仓库命名空间
+NAMESPACE=arsn
+# 镜像仓库名称
+RESP_NAME=drone
+# 打印本次更新的版本号(为jenkins更新的版本号),小于这个版本号的都清理掉
+echo $BUILD_NUMBER
+# 需要清理的镜像名名称,一般是项目模块名称
+echo $IMAGE_NAME
+# 要比较的版本号(仅比较数字部分,忽略 -SNAPSHOT)
+TARGET_BUILD_NUMBER=$BUILD_NUMBER
+# 列出所有相关镜像
+images=$(docker images --filter=reference="$REGISTRY/$NAMESPACE/$RESP_NAME:$IMAGE_NAME-SNAPSHOT-*" --format '{{.Repository}}:{{.Tag}}')
+echo $images
+for image in $images; do
+    # 提取镜像标签中的构建号
+    tag=$(echo $image | cut -d: -f2)
+    build_number=$(echo $tag | sed -n 's/.*-SNAPSHOT-\([0-9]*\).*/\1/p')
+
+    # 检查是否提取到有效的构建号
+    if [[ -z $build_number ]]; then
+        echo "Warning: Could not extract build number from tag '$tag'. Skipping image '$image'."
+        continue
+    fi
+
+    # 将构建号转换为整数进行比较
+    if (( build_number < TARGET_BUILD_NUMBER )); then
+        # 构建号小于目标值,删除镜像
+        echo "Deleting image: $image (build number $build_number is less than $TARGET_BUILD_NUMBER)"
+        docker rmi $image
+    fi
+done

--
Gitblit v1.9.3