Files
Nexus_Mat/scripts/push-docker.ps1

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"