chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$ImageTag
|
||||
)
|
||||
|
||||
# 当命令失败时,立即退出脚本
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
Write-Host "Pulling image: $ImageTag" -ForegroundColor Green
|
||||
|
||||
# 计算斜杠数量来确定镜像格式
|
||||
$slashCount = ($ImageTag -split '/' | Measure-Object).Count - 1
|
||||
|
||||
# 根据镜像格式设置镜像 URL
|
||||
switch ($slashCount) {
|
||||
0 {
|
||||
# 无前缀 (例如: python:3.13-slim)
|
||||
$mirrorUrl = "m.daocloud.io/docker.io/library"
|
||||
Write-Host "Image format: Official image (no prefix)" -ForegroundColor Cyan
|
||||
}
|
||||
1 {
|
||||
# 一个前缀 (例如: milvusdb/milvus:latest)
|
||||
$mirrorUrl = "m.daocloud.io/docker.io"
|
||||
Write-Host "Image format: Hub repository (one prefix)" -ForegroundColor Cyan
|
||||
}
|
||||
default {
|
||||
# 两个或更多前缀 (例如: quay.io/coreos/etcd:v3.5.5)
|
||||
$mirrorUrl = "m.daocloud.io"
|
||||
Write-Host "Image format: Third-party registry (multiple prefixes)" -ForegroundColor Cyan
|
||||
}
|
||||
}
|
||||
|
||||
$fullMirrorUrl = "$mirrorUrl/$ImageTag"
|
||||
Write-Host "Mirror URL: $fullMirrorUrl" -ForegroundColor Yellow
|
||||
|
||||
try {
|
||||
# 从镜像加速器拉取镜像
|
||||
Write-Host "Step 1: Pulling image from mirror..." -ForegroundColor Blue
|
||||
docker pull $fullMirrorUrl
|
||||
|
||||
# 重新标记为原始名称
|
||||
Write-Host "Step 2: Tagging image with original name..." -ForegroundColor Blue
|
||||
docker tag $fullMirrorUrl $ImageTag
|
||||
|
||||
# 删除镜像加速器标签
|
||||
Write-Host "Step 3: Removing mirror tag..." -ForegroundColor Blue
|
||||
docker rmi $fullMirrorUrl
|
||||
|
||||
Write-Host "`nProcess completed successfully!" -ForegroundColor Green
|
||||
Write-Host "`nCurrent Docker images:" -ForegroundColor Yellow
|
||||
docker images
|
||||
|
||||
} catch {
|
||||
Write-Host "`nError occurred: $_" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
Reference in New Issue
Block a user