Files
wecom-ai-assistant/scripts/verify-build.ps1
bujie9527 91c3d75557
Some checks are pending
Build and Deploy / test-backend (push) Waiting to run
Build and Deploy / build-backend (push) Blocked by required conditions
Build and Deploy / build-admin (push) Waiting to run
Deploy to Production / build-backend (push) Waiting to run
Deploy to Production / deploy (push) Blocked by required conditions
Add build verification scripts and documentation
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-05 23:04:43 +08:00

119 lines
4.5 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 验证构建和推送是否成功
# 用途:检查镜像是否已构建并推送到 Registry
param(
[string]$Tag = "latest",
[string]$Registry = "registry.667788.cool"
)
Write-Host "=== 验证构建和推送结果 ===" -ForegroundColor Cyan
Write-Host ""
Write-Host "Registry: $Registry" -ForegroundColor Gray
Write-Host "Tag: $Tag" -ForegroundColor Gray
Write-Host ""
$images = @(
"$Registry/wecom-backend:$Tag",
"$Registry/wecom-admin:$Tag",
"$Registry/wecom-nginx:$Tag"
)
$allSuccess = $true
# 1. 检查本地镜像
Write-Host "1. 检查本地镜像..." -ForegroundColor Yellow
foreach ($image in $images) {
$result = docker images $image --format "{{.Repository}}:{{.Tag}}" 2>$null
if ($result -and $result -eq $image) {
$size = docker images $image --format "{{.Size}}" 2>$null
Write-Host "$image ($size)" -ForegroundColor Green
} else {
Write-Host "$image (未找到)" -ForegroundColor Red
$allSuccess = $false
}
}
Write-Host ""
# 2. 测试 Registry 连接
Write-Host "2. 测试 Registry 连接..." -ForegroundColor Yellow
try {
$testResult = Test-NetConnection -ComputerName $Registry -Port 443 -InformationLevel Quiet -WarningAction SilentlyContinue 2>$null
if ($testResult) {
Write-Host " ✓ Registry 网络连接正常" -ForegroundColor Green
} else {
Write-Host " ⚠ Registry 网络连接可能有问题" -ForegroundColor Yellow
}
} catch {
Write-Host " ⚠ 无法测试网络连接" -ForegroundColor Yellow
}
Write-Host ""
# 3. 测试拉取镜像(验证推送是否成功)
Write-Host "3. 测试拉取镜像(验证推送是否成功)..." -ForegroundColor Yellow
Write-Host " 提示: 如果镜像已推送,可以尝试拉取验证" -ForegroundColor Gray
Write-Host ""
foreach ($image in $images) {
Write-Host " 测试: $image" -ForegroundColor Gray
$pullResult = docker pull $image 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host " ✓ 拉取成功(镜像已推送到 Registry" -ForegroundColor Green
} else {
$errorMsg = $pullResult | Select-String -Pattern "error|not found|unauthorized" -CaseSensitive:$false
if ($errorMsg) {
Write-Host " ✗ 拉取失败: $errorMsg" -ForegroundColor Red
Write-Host " 可能原因:" -ForegroundColor Yellow
Write-Host " - 镜像尚未推送" -ForegroundColor Gray
Write-Host " - Registry 需要认证" -ForegroundColor Gray
Write-Host " - 网络连接问题" -ForegroundColor Gray
} else {
Write-Host " ⚠ 无法验证(可能需要先登录 Registry" -ForegroundColor Yellow
}
}
Write-Host ""
}
Write-Host ""
# 4. 检查镜像详细信息
Write-Host "4. 镜像详细信息..." -ForegroundColor Yellow
foreach ($image in $images) {
$localImage = docker images $image --format "{{.Repository}}:{{.Tag}} {{.Size}} {{.CreatedAt}}" 2>$null
if ($localImage) {
Write-Host " $image" -ForegroundColor Cyan
Write-Host " $localImage" -ForegroundColor Gray
}
}
Write-Host ""
# 5. 验证镜像内容(可选)
Write-Host "5. 验证镜像内容(可选)..." -ForegroundColor Yellow
Write-Host " 可以运行以下命令测试镜像:" -ForegroundColor Gray
Write-Host ""
Write-Host " # 测试 Backend 镜像" -ForegroundColor Gray
Write-Host " docker run --rm $Registry/wecom-backend:$Tag python --version" -ForegroundColor Gray
Write-Host ""
Write-Host " # 测试 Admin 镜像" -ForegroundColor Gray
Write-Host " docker run --rm $Registry/wecom-admin:$Tag node --version" -ForegroundColor Gray
Write-Host ""
Write-Host " # 测试 Nginx 镜像" -ForegroundColor Gray
Write-Host " docker run --rm $Registry/wecom-nginx:$Tag nginx -v" -ForegroundColor Gray
Write-Host ""
# 总结
Write-Host "=== 验证完成 ===" -ForegroundColor Cyan
Write-Host ""
if ($allSuccess) {
Write-Host "✓ 所有镜像已成功构建" -ForegroundColor Green
Write-Host ""
Write-Host "下一步:" -ForegroundColor Yellow
Write-Host " 1. 如果尚未推送,运行: .\scripts\build_and_push.ps1 -Tag $Tag" -ForegroundColor Gray
Write-Host " 2. 在服务器上拉取镜像并部署" -ForegroundColor Gray
Write-Host " 3. 参考 README_DEPLOY.md 进行部署" -ForegroundColor Gray
} else {
Write-Host "⚠ 部分镜像未找到,请检查构建日志" -ForegroundColor Yellow
Write-Host ""
Write-Host "重新构建:" -ForegroundColor Yellow
Write-Host " .\scripts\build_and_push.ps1 -Tag $Tag" -ForegroundColor Gray
}
Write-Host ""