66 lines
2.4 KiB
Markdown
66 lines
2.4 KiB
Markdown
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命令类似)获取 |