Files
CmiiDeploy/998-常用脚本/b-镜像同步/压缩包名称统一/压缩包规范化.md
2026-05-19 14:28:56 +08:00

2.4 KiB
Raw Blame History

golang版本的代码如下 func ImageFullNameToScriptGzipName(imageName string) (scriptGzipName string) {

// harbor.cdcyy.cn/cmii/cmii-uav-platform:6.2.0-gz-121101-arm ==> cmii-uav-user=6.2.0-gz-121101-arm=2025-12-11=968.tar.gz

// nginx:latest ==> nginx=latest=2025-12-11=968.tar.gz
// bitnami/minio:2022.5.4 ==> minio=2022.5.4=2025-12-11=968.tar.gz
// simonrupf/chronyd:0.4.3 ==> chronyd=0.4.3=2025-12-11=968.tar.gz
// ossrs/srs:v5.0.1 ==> srs=v5.0.1=2025-12-11=968.tar.gz
// rancher/fleet:v0.3.4 ==> fleet=v0.3.4=2025-12-11=968.tar.gz

// 提取镜像名(去除仓库路径)
var shortName string
if strings.Contains(imageName, "/") {
	parts := strings.Split(imageName, "/")
	shortName = parts[len(parts)-1] // 获取最后一个部分
} else {
	shortName = imageName
}

// 分离镜像名和标签
var name, tag string
if strings.Contains(shortName, ":") {
	parts := strings.Split(shortName, ":")
	name = parts[0]
	tag = parts[1]
} else {
	name = shortName
	tag = "latest"
}

// 获取当前日期 (YYYY-MM-DD)
currentDate := time.Now().Format("2006-01-02")

// 生成 100-999 的随机数
randomNum := 100 + rand.Intn(900) // rand.Intn(900) 生成 0-899加100得到 100-999

// 组合成最终格式: name=tag=date=random.tar.gz
scriptGzipName = fmt.Sprintf("%s=%s=%s=%d", name, tag, currentDate, randomNum)

return scriptGzipName

}

linux脚本下面的旧的函数如下 get_image_tar_name() {

# harbor.cdcyy.com.cn/cmii/cmii-uav-oauth:4.1.6
ImageName=$(echo $UploadImageName | cut -d ":" -f1 | cut -d"/" -f3)
ImageTag=$(echo $UploadImageName | cut -d ":" -f2)
local currentDate=$(date +'%Y-%m-%d')
local random_number=$((RANDOM % 900 + 100))

ImageTarName="$ImageName=$ImageTag=$currentDate=$random_number.tar.gz"

}

请修改上面的内容golang和shell脚本都需要更新效果应该是统一的

最终镜像的格式应该为

  1. harbor.cdcyy.com.cn/cmii/cmii-uav-oauth:4.1.6 => cmii=cmii-uav-oauth=4.1.6=<实际镜像的arch>=YYYY-MM-DD=XXX.tar.gz
  2. nginx:latest ==> docker=nginx=latest=<实际镜像的arch>=2025-12-11=968.tar.gz
  3. bitnami/minio:2022.5.4 ==> bitnami=minio=2022.5.4=<实际镜像的arch>=2025-12-11=968.tar.gz
  4. simonrupf/chronyd:0.4.3 ==> simonrupf=chronyd=0.4.3=<实际镜像的arch>=2025-12-11=968.tar.gz
  5. rancher/fleet:v0.3.4 ==> rancher=fleet=<实际镜像的arch>==v0.3.4=2025-12-11=968.tar.gz

<实际镜像的arch>需要查看镜像的详细信息docker inspect命令类似获取