Files
NoteAI/scripts/build-dockerapp.ps1
2026-02-24 09:53:19 +08:00

45 lines
1.9 KiB
PowerShell

# Deploy Script
param (
# automatically determine root relative to this script (scripts/ folder)
[string]$ProjectRoot = (Resolve-Path "$PSScriptRoot/..").Path
)
$ErrorActionPreference = "Stop"
$DockerAppDir = Join-Path $ProjectRoot "dockerapp"
$NextDir = Join-Path $ProjectRoot ".next"
$PublicDir = Join-Path $ProjectRoot "public"
$PrismaDir = Join-Path $ProjectRoot "prisma"
Write-Host "📦 Starting Dockerapp Packaging..." -ForegroundColor Cyan
Write-Host " Project Root: $ProjectRoot"
# 1. Clean dockerapp (Keep Dockerfile & docker-compose.yml)
Write-Host " Cleaning previous build artifacts..."
Get-ChildItem -Path $DockerAppDir -Exclude Dockerfile, docker-compose.yml | Remove-Item -Recurse -Force
# 2. Copy Standalone (Exclude node_modules because Dockerfile reinstalls them)
Write-Host " Copying Standalone build (skipping node_modules)..."
if (!(Test-Path "$NextDir/standalone")) {
Write-Error "❌ .next/standalone not found! Run 'npm run build' first."
}
# Copy everything inside standalone EXCEPT node_modules
Get-ChildItem -Path "$NextDir/standalone" -Exclude "node_modules" | Copy-Item -Destination $DockerAppDir -Recurse -Force
# 3. Copy Static Assets (Crucial!)
Write-Host " Copying Static assets..."
$DestStatic = Join-Path $DockerAppDir ".next/static"
New-Item -ItemType Directory -Path $DestStatic -Force | Out-Null
Copy-Item -Path "$NextDir/static/*" -Destination $DestStatic -Recurse -Force
# 4. Copy Public Assets
Write-Host " Copying Public folder..."
Copy-Item -Path $PublicDir -Destination $DockerAppDir -Recurse -Force
# 5. Copy Prisma
Write-Host " Copying Prisma..."
Copy-Item -Path $PrismaDir -Destination $DockerAppDir -Recurse -Force
Write-Host "✅ Packaging Complete!" -ForegroundColor Green
Write-Host " Location: $DockerAppDir"
Write-Host " Next Step: Upload 'dockerapp' folder to server and run 'docker-compose up -d --build'"