Modules/businessdev.ALbuild.Apps/Public/Install-BcContainerApp.ps1

function Install-BcContainerApp {
    <#
    .SYNOPSIS
        Installs a published AL app in a Business Central container.
    .PARAMETER Name
        Container name.
    .PARAMETER AppName
        The app name.
    .PARAMETER AppVersion
        Optional app version.
    .PARAMETER ServerInstance
        BC server instance. Default 'BC'.
    .PARAMETER Tenant
        Tenant. Default 'default'.
    .PARAMETER DockerExecutable
        The Docker executable to use (default 'docker').
    .EXAMPLE
        Install-BcContainerApp -Name bld -AppName 'My App' -AppVersion '1.0.0.0'
    #>

    [CmdletBinding(SupportsShouldProcess)]
    param(
        [Parameter(Mandatory)] [Alias('ContainerName')] [string] $Name,
        [Parameter(Mandatory)] [string] $AppName,
        [string] $AppVersion,
        [string] $ServerInstance = 'BC',
        [string] $Tenant = 'default',
        [string] $DockerExecutable = 'docker'
    )
    if (-not $PSCmdlet.ShouldProcess($Name, "Install $AppName")) { return }
    $output = Invoke-BcContainerCommand -ContainerName $Name -DockerExecutable $DockerExecutable -Variables @{
        ServerInstance = $ServerInstance; AppName = $AppName; AppVersion = $AppVersion; Tenant = $Tenant
    } -ScriptBlock {
        $params = @{ ServerInstance = $ServerInstance; Name = $AppName; Tenant = $Tenant; ErrorAction = 'Stop' }
        if ($AppVersion) { $params['Version'] = $AppVersion }
        Install-NAVApp @params
        Write-Output "Installed $AppName"
    }
    Write-ALbuildLog -Level Success ($output.Trim())
}