Files
AIclinicalresearch/backend/rebuild-and-push.ps1
HaHafeng 61cdc97eeb feat(platform): Fix pg-boss queue conflict and add safety standards
Summary:
- Fix pg-boss queue conflict (duplicate key violation on queue_pkey)
- Add global error listener to prevent process crash
- Reduce connection pool from 10 to 4
- Add graceful shutdown handling (SIGTERM/SIGINT)
- Fix researchWorker recursive call bug in catch block
- Make screeningWorker idempotent using upsert

Security Standards (v1.1):
- Prohibit recursive retry in Worker catch blocks
- Prohibit payload bloat (only store fileKey/ID in job.data)
- Require Worker idempotency (upsert + unique constraint)
- Recommend task-specific expireInSeconds settings
- Document graceful shutdown pattern

New Features:
- PKB signed URL endpoint for document preview/download
- pg_bigm installation guide for Docker
- Dockerfile.postgres-with-extensions for pgvector + pg_bigm

Documentation:
- Update Postgres-Only async task processing guide (v1.1)
- Add troubleshooting SQL queries
- Update safety checklist

Tested: Local verification passed
2026-01-23 22:07:26 +08:00

141 lines
3.7 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.
# Node.js后端 - 重新构建并推送镜像到ACR
# 创建时间: 2025-12-24
# 原因: 修复缺少config目录的问题
Write-Host "============================================" -ForegroundColor Cyan
Write-Host "🚀 Node.js后端 - 重新构建镜像" -ForegroundColor Cyan
Write-Host "============================================" -ForegroundColor Cyan
Write-Host ""
# 1. 确认当前目录
$currentDir = Get-Location
Write-Host "📁 当前目录: $currentDir" -ForegroundColor Yellow
if ($currentDir.Path -notlike "*\backend") {
Write-Host "❌ 错误: 请在 backend 目录下运行此脚本!" -ForegroundColor Red
exit 1
}
# 2. 检查必需文件
Write-Host ""
Write-Host "🔍 检查必需文件..." -ForegroundColor Yellow
$requiredFiles = @("Dockerfile", "dist", "config", "package.json", "prisma")
foreach ($file in $requiredFiles) {
if (Test-Path $file) {
Write-Host "$file" -ForegroundColor Green
} else {
Write-Host "$file 不存在!" -ForegroundColor Red
exit 1
}
}
# 3. 登录ACR
Write-Host ""
Write-Host "🔐 登录阿里云容器镜像服务 (ACR)..." -ForegroundColor Yellow
docker login `
--username=gofeng117@163.com `
--password=fengzhibo117 `
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com
if ($LASTEXITCODE -ne 0) {
Write-Host "❌ ACR登录失败" -ForegroundColor Red
exit 1
}
Write-Host "✅ ACR登录成功" -ForegroundColor Green
# 4. 构建镜像
Write-Host ""
Write-Host "🏗️ 开始构建Docker镜像..." -ForegroundColor Yellow
Write-Host " 镜像名称: backend-service:v1.1" -ForegroundColor Cyan
Write-Host " 修复内容: 添加config目录agents.yaml等配置文件" -ForegroundColor Cyan
Write-Host ""
$imageName = "crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service"
$imageTag = "v1.1"
docker build -t "${imageName}:${imageTag}" .
if ($LASTEXITCODE -ne 0) {
Write-Host "❌ 镜像构建失败!" -ForegroundColor Red
exit 1
}
Write-Host "✅ 镜像构建成功: ${imageName}:${imageTag}" -ForegroundColor Green
# 5. 推送镜像到ACR
Write-Host ""
Write-Host "📤 推送镜像到ACR..." -ForegroundColor Yellow
docker push "${imageName}:${imageTag}"
if ($LASTEXITCODE -ne 0) {
Write-Host "❌ 镜像推送失败!" -ForegroundColor Red
exit 1
}
Write-Host "✅ 镜像推送成功" -ForegroundColor Green
# 6. 同时打上latest标签可选
Write-Host ""
Write-Host "🏷️ 打上latest标签..." -ForegroundColor Yellow
docker tag "${imageName}:${imageTag}" "${imageName}:latest"
docker push "${imageName}:latest"
Write-Host "✅ latest标签已推送" -ForegroundColor Green
# 7. 完成
Write-Host ""
Write-Host "============================================" -ForegroundColor Cyan
Write-Host "🎉 镜像构建和推送完成!" -ForegroundColor Green
Write-Host "============================================" -ForegroundColor Cyan
Write-Host ""
Write-Host "📋 镜像信息:" -ForegroundColor Yellow
Write-Host " 公网地址: ${imageName}:${imageTag}" -ForegroundColor Cyan
Write-Host " VPC地址: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:${imageTag}" -ForegroundColor Cyan
Write-Host ""
Write-Host "📝 下一步操作:" -ForegroundColor Yellow
Write-Host " 1. 登录SAE控制台: https://sae.console.aliyun.com/" -ForegroundColor White
Write-Host " 2. 找到应用: nodejs-backend-test" -ForegroundColor White
Write-Host " 3. 配置管理 → 部署配置 → 镜像设置" -ForegroundColor White
Write-Host " 4. 修改镜像版本为: v1.1" -ForegroundColor White
Write-Host " 5. 保存并重新部署" -ForegroundColor White
Write-Host ""