Skip to content

ALOps Docker Start

Start a Business Central Docker container for CI/CD pipelines.

Property Value
Task name (Azure DevOps) ALOpsDockerStart@3
Action name (GitHub) alops-dockerstart
Version 3.0.0
Category Utility
OS requirement Both
Preview yes

Start or reuse a Business Central Docker container. Handles Docker registry authentication (username/password), container creation with feature toggles, SQL database configuration, DLL add-in installation, Azure Key Vault setup, and build tagging.

Inputs

docker

Name Type Required Default Platform Description
fixed_tag Text no (empty) Both Fixed container label. When set, the container is tagged with this value instead of the build ID. Enables container reuse across builds.
ignore_no_container_warning Boolean no true Both Suppress the warning when no existing container is found for reuse.
docker_image Text no (empty) Both Full Docker image name including tag, for example mcr.microsoft.com/businesscentral:ltsc2022. Leave empty to use the default BC sandbox image.
docker_pull Boolean no true Both Pull the Docker image before creating the container. Disable to use a locally cached image.
accept_image_eula Boolean no true Both Accept the End User License Agreement for the Business Central Docker image.
accept_image_outdated Boolean no true Both Accept an outdated Docker image without failing the task.
container_restart PickList no no Both Docker restart policy for the container. Options: no, on-failure, unless-stopped, always.
memory_gb Text no -1 Both Memory limit in GB for the container. Set to -1 for no limit.
docker_parameters MultiLine no (empty) Both Additional parameters passed to docker create. One parameter per line.

features

Name Type Required Default Platform Description
enable_symbol_loading Boolean no false Both Enable symbol loading in the Business Central server instance.
enable_api_services Boolean no false Both Enable API services in the Business Central server instance.
multitenant Boolean no false Both Configure the Business Central server instance for multitenancy.

authentication

Name Type Required Default Platform Description
docker_authentication PickList no None Both Authentication method for the Docker registry. Options: None, UsernamePassword.
docker_username Text no (empty) Both Username for Docker registry authentication.
docker_password Secret no (empty) Both Password for Docker registry authentication. Store this in a pipeline secret variable.
docker_registry Text no (empty) Both Docker registry URL. When empty, the registry is derived from the image name.

database

Name Type Required Default Platform Description
sql_server Text no (empty) Both External SQL Server hostname. Leave empty to use the container's built-in SQL instance.
sql_server_instance Text no (empty) Both SQL Server named instance.
sql_database Text no (empty) Both SQL database name to use for the Business Central service tier.
sql_database_user Text no (empty) Both SQL Server authentication username.
sql_database_user_password Secret no (empty) Both SQL Server authentication password. Store this in a pipeline secret variable.
sql_backup_file Text no (empty) Both Path to a .bak file to restore into the container's SQL instance.

licensing

Name Type Required Default Platform Description
licensefile Text no (empty) Both Path to a Business Central license file (.flf or .bclicense) to import into the container.
encryption_key Text no (empty) Both Path to an encryption key file to import into the container.

scheduler

Name Type Required Default Platform Description
taskscheduler PickList no Keep Both Configure the BC task scheduler. Keep preserves the default, Enable starts it, Disable stops it. Options: Keep, Enable, Disable.

keyvault

Name Type Required Default Platform Description
keyvault_pfxfile Text no (empty) Both Path to the PFX certificate file for Azure Key Vault authentication.
keyvault_pfxpassword Secret no (empty) Both Password for the PFX certificate. Store this in a pipeline secret variable.
keyvault_clientid Text no (empty) Both Azure AD application (client) ID used for Key Vault authentication.
keyvault_publisher_validation Boolean no false Both Enable publisher validation for Key Vault extension settings.

Outputs

Name Description
container_id The Docker container ID.
container_label The label used to tag the container.

Usage

- task: ALOpsDockerStart@3
  displayName: 'ALOps Docker Start'
  inputs:
    fixed_tag:                            # Fixed container label. When set, the container is tagged with this value instead of the build ID. Enables container reuse across builds. $(fixed_tag)
    ignore_no_container_warning: True     # Suppress the warning when no existing container is found for reuse. $(ignore_no_container_warning)
    docker_image:                         # Full Docker image name including tag, for example mcr.microsoft.com/businesscentral:ltsc2022. Leave empty to use the default BC sandbox image. $(docker_image)
    docker_pull: True                     # Pull the Docker image before creating the container. Disable to use a locally cached image. $(docker_pull)
    accept_image_eula: True               # Accept the End User License Agreement for the Business Central Docker image. $(accept_image_eula)
    accept_image_outdated: True           # Accept an outdated Docker image without failing the task. $(accept_image_outdated)
    container_restart: no                 # Docker restart policy for the container. $(container_restart)
    memory_gb: -1                         # Memory limit in GB for the container. Set to -1 for no limit. $(memory_gb)
    docker_parameters:                    # Additional parameters passed to docker create. One parameter per line. $(docker_parameters)
    enable_symbol_loading: False          # Enable symbol loading in the Business Central server instance. $(enable_symbol_loading)
    enable_api_services: False            # Enable API services in the Business Central server instance. $(enable_api_services)
    multitenant: False                    # Configure the Business Central server instance for multitenancy. $(multitenant)
    docker_authentication: None           # Authentication method for the Docker registry. $(docker_authentication)
    docker_username:                      # Username for Docker registry authentication. $(docker_username)
    docker_password:                      # Password for Docker registry authentication. Store this in a pipeline secret variable. $(docker_password)
    docker_registry:                      # Docker registry URL. When empty, the registry is derived from the image name. $(docker_registry)
    sql_server:                           # External SQL Server hostname. Leave empty to use the container's built-in SQL instance. $(sql_server)
    sql_server_instance:                  # SQL Server named instance. $(sql_server_instance)
    sql_database:                         # SQL database name to use for the Business Central service tier. $(sql_database)
    sql_database_user:                    # SQL Server authentication username. $(sql_database_user)
    sql_database_user_password:           # SQL Server authentication password. Store this in a pipeline secret variable. $(sql_database_user_password)
    sql_backup_file:                      # Path to a .bak file to restore into the container's SQL instance. $(sql_backup_file)
    licensefile:                          # Path to a Business Central license file (.flf or .bclicense) to import into the container. $(licensefile)
    encryption_key:                       # Path to an encryption key file to import into the container. $(encryption_key)
    taskscheduler: Keep                   # Configure the BC task scheduler. Keep preserves the default, Enable starts it, Disable stops it. $(taskscheduler)
    keyvault_pfxfile:                     # Path to the PFX certificate file for Azure Key Vault authentication. $(keyvault_pfxfile)
    keyvault_pfxpassword:                 # Password for the PFX certificate. Store this in a pipeline secret variable. $(keyvault_pfxpassword)
    keyvault_clientid:                    # Azure AD application (client) ID used for Key Vault authentication. $(keyvault_clientid)
    keyvault_publisher_validation: False  # Enable publisher validation for Key Vault extension settings. $(keyvault_publisher_validation)
- name: ALOps Docker Start
  uses: HodorNV/ALOps-V3/alops-dockerstart@v3   <!-- TODO: confirm action repo path -->
  with:
    fixed_tag: ''
    ignore_no_container_warning: 'true'
    docker_image: ''
    docker_pull: 'true'
    accept_image_eula: 'true'
    accept_image_outdated: 'true'
    container_restart: 'no'
    memory_gb: '-1'
    docker_parameters: ''
    enable_symbol_loading: 'false'
    enable_api_services: 'false'
    multitenant: 'false'
    docker_authentication: 'None'
    docker_username: ''
    docker_password: ''
    docker_registry: ''
    sql_server: ''
    sql_server_instance: ''
    sql_database: ''
    sql_database_user: ''
    sql_database_user_password: ''
    sql_backup_file: ''
    licensefile: ''
    encryption_key: ''
    taskscheduler: 'Keep'
    keyvault_pfxfile: ''
    keyvault_pfxpassword: ''
    keyvault_clientid: ''
    keyvault_publisher_validation: 'false'