28 lines
983 B
PowerShell
28 lines
983 B
PowerShell
param(
|
|
[string]$Registry = $env:DOCKER_REGISTRY,
|
|
[string]$Namespace = $env:REG_NAMESPACE,
|
|
[string]$ImageName = $(if($env:IMAGE_NAME){$env:IMAGE_NAME}else{"nexus-material"}),
|
|
[string]$LocalImageName = $(if($env:LOCAL_IMAGE_NAME){$env:LOCAL_IMAGE_NAME}else{"nexus-material-share-app"}),
|
|
[string]$Tag = $(if($env:IMAGE_TAG){$env:IMAGE_TAG}else{"latest"}),
|
|
[string]$Username = $env:REG_USERNAME,
|
|
[string]$Password = $env:REG_PASSWORD
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
if (-not $Registry) { throw "DOCKER_REGISTRY not set" }
|
|
if (-not $Username -or -not $Password) { throw "REG_USERNAME/REG_PASSWORD not set" }
|
|
if (-not $Namespace) { throw "REG_NAMESPACE not set" }
|
|
|
|
docker compose build app
|
|
|
|
$localRef = "$LocalImageName:$Tag"
|
|
$remoteRef = "$Registry/$Namespace/$ImageName:$Tag"
|
|
|
|
# Secure login without echoing password
|
|
$Password | docker login $Registry -u $Username --password-stdin
|
|
docker tag $localRef $remoteRef
|
|
docker push $remoteRef
|
|
|
|
Write-Host "Pushed $remoteRef"
|