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').
    #>

    [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())
}