46 lines
1.4 KiB
PowerShell
46 lines
1.4 KiB
PowerShell
param(
|
|
[string]$ImageName = "jgjs2026-dist",
|
|
[string]$Tag = "latest"
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
$projectRoot = Split-Path -Parent $PSScriptRoot
|
|
$distPath = Join-Path $projectRoot "dist"
|
|
$dockerfilePath = Join-Path $projectRoot "Dockerfile.dist"
|
|
$serverSourcePath = Join-Path $projectRoot "docker\\dist-server"
|
|
$buildContext = Join-Path ([System.IO.Path]::GetTempPath()) ("jgjs2026-dist-docker-" + [System.Guid]::NewGuid().ToString("N"))
|
|
|
|
if (-not (Test-Path $distPath)) {
|
|
throw "dist directory not found. Run npm run build first."
|
|
}
|
|
|
|
if (-not (Test-Path $dockerfilePath)) {
|
|
throw "Dockerfile.dist not found."
|
|
}
|
|
|
|
if (-not (Test-Path $serverSourcePath)) {
|
|
throw "docker/dist-server not found."
|
|
}
|
|
|
|
New-Item -ItemType Directory -Path $buildContext | Out-Null
|
|
New-Item -ItemType Directory -Path (Join-Path $buildContext "docker") | Out-Null
|
|
|
|
try {
|
|
Copy-Item $dockerfilePath (Join-Path $buildContext "Dockerfile.dist")
|
|
Copy-Item $serverSourcePath (Join-Path $buildContext "docker\\dist-server") -Recurse
|
|
Copy-Item $distPath (Join-Path $buildContext "dist") -Recurse
|
|
|
|
Write-Host "Building Docker image ${ImageName}:${Tag} from minimal dist context..."
|
|
docker build -f (Join-Path $buildContext "Dockerfile.dist") -t "${ImageName}:${Tag}" $buildContext
|
|
}
|
|
finally {
|
|
if (Test-Path $buildContext) {
|
|
Remove-Item $buildContext -Recurse -Force
|
|
}
|
|
}
|
|
|
|
Write-Host "Done."
|
|
Write-Host "Run with:"
|
|
Write-Host "docker run --rm -p 8080:80 ${ImageName}:${Tag}"
|