2.4 KiB
2.4 KiB
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脚本都需要更新,效果应该是统一的
最终镜像的格式应该为
- 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
- nginx:latest ==> docker=nginx=latest=<实际镜像的arch>=2025-12-11=968.tar.gz
- bitnami/minio:2022.5.4 ==> bitnami=minio=2022.5.4=<实际镜像的arch>=2025-12-11=968.tar.gz
- simonrupf/chronyd:0.4.3 ==> simonrupf=chronyd=0.4.3=<实际镜像的arch>=2025-12-11=968.tar.gz
- rancher/fleet:v0.3.4 ==> rancher=fleet=<实际镜像的arch>==v0.3.4=2025-12-11=968.tar.gz
<实际镜像的arch>需要查看镜像的详细信息(docker inspect命令类似)获取