Files
wecom-ai-assistant/scripts/build_and_push.ps1
bujie9527 b7f7604a23
Some checks failed
Build and Deploy / test-backend (push) Has been cancelled
Build and Deploy / build-backend (push) Has been cancelled
Build and Deploy / build-admin (push) Has been cancelled
Deploy to Production / build-backend (push) Has been cancelled
Deploy to Production / deploy (push) Has been cancelled
Fix release configuration and add PowerShell build script
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-05 22:59:48 +08:00

75 lines
2.3 KiB
PowerShell

# 构建并推送 Docker 镜像到私有 Registry (PowerShell 版本)
# 用途:构建 backend、admin、nginx 镜像并推送到 registry.667788.cool
# 使用: .\scripts\build_and_push.ps1 [TAG]
# 示例: .\scripts\build_and_push.ps1 v1.0.0
param(
[string]$Tag = "latest"
)
$Registry = "registry.667788.cool"
Write-Host "=== 构建并推送 Docker 镜像 ===" -ForegroundColor Cyan
Write-Host ""
Write-Host "Registry: $Registry" -ForegroundColor Gray
Write-Host "Tag: $Tag" -ForegroundColor Gray
Write-Host ""
# 检查 docker compose 命令
$dockerComposeCmd = $null
if (Get-Command docker-compose -ErrorAction SilentlyContinue) {
$dockerComposeCmd = "docker-compose"
} elseif (docker compose version 2>$null) {
$dockerComposeCmd = "docker compose"
} else {
Write-Host "错误: 未找到 docker-compose 或 docker compose 命令" -ForegroundColor Red
exit 1
}
# 登录 registry
Write-Host "1. 登录 registry..." -ForegroundColor Yellow
docker login $Registry
if ($LASTEXITCODE -ne 0) {
Write-Host "✗ 登录失败,请检查凭据" -ForegroundColor Red
exit 1
}
Write-Host "✓ 登录成功" -ForegroundColor Green
Write-Host ""
# 构建镜像
Write-Host "2. 构建镜像..." -ForegroundColor Yellow
$env:TAG = $Tag
if ($dockerComposeCmd -eq "docker-compose") {
docker-compose -f docker-compose.release.yml build
} else {
docker compose -f docker-compose.release.yml build
}
if ($LASTEXITCODE -ne 0) {
Write-Host "✗ 构建失败" -ForegroundColor Red
exit 1
}
Write-Host "✓ 构建成功" -ForegroundColor Green
Write-Host ""
# 推送镜像
Write-Host "3. 推送镜像..." -ForegroundColor Yellow
if ($dockerComposeCmd -eq "docker-compose") {
docker-compose -f docker-compose.release.yml push
} else {
docker compose -f docker-compose.release.yml push
}
if ($LASTEXITCODE -ne 0) {
Write-Host "✗ 推送失败" -ForegroundColor Red
exit 1
}
Write-Host "✓ 推送成功" -ForegroundColor Green
Write-Host ""
Write-Host "=== 完成 ✅ ===" -ForegroundColor Green
Write-Host ""
Write-Host "镜像已推送到:" -ForegroundColor Cyan
Write-Host " - $Registry/wecom-backend:$Tag" -ForegroundColor Gray
Write-Host " - $Registry/wecom-admin:$Tag" -ForegroundColor Gray
Write-Host " - $Registry/wecom-nginx:$Tag" -ForegroundColor Gray
Write-Host ""