57 lines
2.3 KiB
PowerShell
57 lines
2.3 KiB
PowerShell
#!/usr/bin/env pwsh
|
|
# Build script for PISCAL Docker image with automatic versioning
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
# Load password from .piscal-build.env if it exists (gitignored)
|
|
if (Test-Path .piscal-build.env) {
|
|
Get-Content .piscal-build.env | ForEach-Object {
|
|
if ($_ -match '^\s*([^#][^=]+)=(.*)$') {
|
|
[Environment]::SetEnvironmentVariable($matches[1].Trim(), $matches[2].Trim(), 'Process')
|
|
}
|
|
}
|
|
}
|
|
|
|
# Generate version tag: YYYYMMDD-gitsha
|
|
$DateTag = Get-Date -Format "yyyyMMdd"
|
|
$GitSha = (git rev-parse --short HEAD).Trim()
|
|
$Version = "$DateTag-$GitSha"
|
|
|
|
Write-Host "Building PISCAL Docker image..." -ForegroundColor Cyan
|
|
Write-Host "Version: $Version" -ForegroundColor Cyan
|
|
Write-Host ""
|
|
|
|
# Build args: use PISCAL_SSH_PASSWORD if set (from env or .piscal-build.env)
|
|
$BuildArgs = @("-t", "piscal:$Version", "-t", "piscal:latest", "-t", "piscal:dev")
|
|
if ($env:PISCAL_SSH_PASSWORD) {
|
|
$BuildArgs += "--build-arg", "SSH_PASSWORD=$($env:PISCAL_SSH_PASSWORD)"
|
|
}
|
|
docker build @BuildArgs .
|
|
|
|
if ($LASTEXITCODE -eq 0) {
|
|
Write-Host ""
|
|
Write-Host "Successfully built:" -ForegroundColor Green
|
|
Write-Host " - piscal:$Version" -ForegroundColor Green
|
|
Write-Host " - piscal:latest" -ForegroundColor Green
|
|
Write-Host " - piscal:dev" -ForegroundColor Green
|
|
Write-Host ""
|
|
if ($env:PISCAL_SSH_PASSWORD) {
|
|
Write-Host "Credentials (from PISCAL_SSH_PASSWORD / .piscal-build.env):" -ForegroundColor Cyan
|
|
Write-Host " Username: piscaladmin" -ForegroundColor Cyan
|
|
Write-Host " Password: (custom)" -ForegroundColor Cyan
|
|
} else {
|
|
Write-Host "Default credentials (v1 layout):" -ForegroundColor Cyan
|
|
Write-Host " Username: piscaladmin" -ForegroundColor Cyan
|
|
Write-Host " Password: piscaladmin" -ForegroundColor Cyan
|
|
}
|
|
Write-Host " LeafWeb: /home/piscaladmin/LeafWeb (scripts + project dirs)" -ForegroundColor Cyan
|
|
Write-Host " Storage: /home/piscaladmin/LeafWeb_storage" -ForegroundColor Cyan
|
|
Write-Host " Executable: /home/piscaladmin/piscal_executable/piscal" -ForegroundColor Cyan
|
|
Write-Host ""
|
|
Write-Host "To run: docker run -d -p 2222:22 --name piscal-server piscal:latest" -ForegroundColor Yellow
|
|
Write-Host "To SSH: ssh -p 2222 piscaladmin@localhost" -ForegroundColor Yellow
|
|
} else {
|
|
Write-Host "Build failed!" -ForegroundColor Red
|
|
exit $LASTEXITCODE
|
|
}
|