Files
xerrors--yuxi/scripts/pull_image.ps1
T
wehub-resource-sync 1443d3fdf9
Ruff Format Check / Ruff Format & Lint (push) Failing after 7m39s
Deploy VitePress site to Pages / build (push) Failing after 9m11s
Deploy VitePress site to Pages / Deploy (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:32:26 +08:00

56 lines
1.7 KiB
PowerShell

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
}