Containers/New-NavContainer2.ps1
function New-NavContainer2 { Param( [Parameter(Mandatory=$true)] [string]$ContainerName, [Parameter(Mandatory=$false)] [string]$ImageName, [Parameter(Mandatory=$false)] [PSCredential]$Credential, # Swtich to include CSide [Parameter(Mandatory=$false)] [switch] $includeCSide, # Optional additional parameters to use when creating the docker container [Parameter(Mandatory=$false)] [string[]] $AdditionalParams, [Parameter(Mandatory=$false)] [ValidateSet('Sandbox','OnPrem')] [string]$ContainerType = 'Sandbox', [Parameter(Mandatory=$false)] [string]$Version, [Parameter(Mandatory=$false)] [string]$Country = 'w1', [Parameter(Mandatory=$false)] [ValidateSet('bcartifacts','bcinsider')] [string]$StorageAccount = 'bcartifacts', [Parameter(Mandatory=$false)] [switch]$SecondToLastMajor, [Parameter(Mandatory=$false)] [string] $memoryLimit = "4G" ) if ($null -eq $Credential) { $NewCredential = New-CredentialFromEnvironmentJson if ($NewCredential -eq $false) { $Credential = [PSCredential]::new('admin', (ConvertTo-SecureString 'P@ssword1' -AsPlainText -Force)) } else { $Credential = $NewCredential } } if ($ImageName.Contains('nav')) { $LicenceFile = (Get-TFSConfigKeyValue 'navLicenceFile') } else { $LicenceFile = (Get-TFSConfigKeyValue 'businessCentralLicenceFile') } $Params = @{ containerName = $ContainerName auth = 'NavUserPassword' licenseFile = $LicenceFile restart = 'no' shortcuts = 'None' } if (($null -eq $ImageName) -or ($null -ne $ContainerType)) { $ArtifactParams = @{ ContainerType = $ContainerType StorageAccount = $StorageAccount Country = $Country } if ($null -ne $Version) { $ArtifactParams.Add('Version', $Version) } if ($SecondToLastMajor.IsPresent) { $ArtifactParams.Add('SecondToLastMajor', $true) } $ArtifactUrl = Get-ArtifactUrl @ArtifactParams Write-Host "Using artifact url $ArtifactUrl" $Params.Add('artifactUrl', $ArtifactUrl) } if ($null -ne $AdditionalParams) { $Params.Add('additionalParameters', $AdditionalParams) } if ($null -ne $ImageName) { $Params.Add('imageName', $ImageName) } New-NavContainer @Params ` -accept_eula ` -accept_outdated ` -Credential $Credential ` -doNotExportObjectsToText ` -includeCSide:$includeCSide ` -updateHosts ` -alwaysPull ` -includeTestToolkit ` -includeTestLibrariesOnly ` -enableTaskScheduler:$false ` -isolation (Get-ContainerIsolation) ` -memoryLimit $memoryLimit } Export-ModuleMember -Function New-NavContainer2 |