gongxiangp2/scripts/update-docker-cache.ps1

44 lines
1.4 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.

# 更新 Docker 构建缓存
# 用途:更新 npm-packages.tgz 缓存,加速后续构建
Write-Host "🔄 更新 Docker 构建缓存" -ForegroundColor Cyan
Write-Host ""
# 检查 node_modules 是否存在
if (-not (Test-Path "node_modules")) {
Write-Host "❌ node_modules 不存在,请先运行 npm install" -ForegroundColor Red
exit 1
}
# 创建缓存目录
if (-not (Test-Path ".docker-cache")) {
New-Item -ItemType Directory -Path ".docker-cache" | Out-Null
}
# 打包 node_modules
Write-Host "📦 正在打包 node_modules..." -ForegroundColor Yellow
$tarFile = ".docker-cache/npm-packages.tgz"
# 使用 tar 命令打包(Windows 10+ 自带)
tar -czf $tarFile node_modules
if (Test-Path $tarFile) {
$fileSize = (Get-Item $tarFile).Length / 1MB
Write-Host "✅ 缓存已更新:$([Math]::Round($fileSize, 2)) MB" -ForegroundColor Green
# 更新缓存信息
$cacheInfo = @{
"created" = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")
"size_mb" = [Math]::Round($fileSize, 2)
"node_version" = (node -v)
"npm_version" = (npm -v)
}
$cacheInfo | ConvertTo-Json | Out-File ".docker-cache/cache-info.json" -Encoding UTF8
Write-Host ""
Write-Host "💡 提示:下次构建镜像时会使用此缓存,速度会快很多" -ForegroundColor Cyan
} else {
Write-Host "❌ 打包失败" -ForegroundColor Red
exit 1
}