It’s been a while since I last blogged about the ARM templates. Mostly because they just live a life of their own and just works. An average of 20 times a day, some partner somewhere in the work is using https://aka.ms/getbc to create an Azure VM with Business Central running in a container (or one of the other ARM templates) directly from a browser. On top of this are all the partners who are automating the process of creating Azure VMs with a PowerShell script. A few things are changing, but functionality stays the same.
Configurable Container Name
Since the making of the ARM templates, the container name has been navserver. With the latest update, the default container name changes to bcserver for getbc and getbcext. For getnav and getnavext, it remains navserver. If your code or scenarios rely on the name being navserver, you should change the setting to navserver.
Docker engine instead of Docker EE
As described in this blog post, the DockerMsftProvider with Docker EE will cease to exist in approx. one year from now. With this update, the Azure VMs created by getbc and the other ARM templates will use Docker Engine (installed by this installation script) if docker wasn’t already present on the base image. Note that Windows Server 2019 with Containers already contains docker, and that will not be replaced with Docker Engine. I don’t know what the future of that base image is.
Windows Server 2022 support
Windows Server 2016 was removed and Windows Server 2022 was added as supported VM platform.
Just-in-time traefik image
When adding support for Windows Server 2022, I found that the traefik image currently only exists for Windows Server 2019. Running the 1809 traefik container in Windows Server 2022 using hyperv didn’t work, so with this update, a traefik image is build using the same windows servercore image as the one used for Business Central (optimizing the amount of images to pull). The code for building the traefik image can be found here.
Updated list of VM Sizes
The list of VM Sizes you can select has been updated to include more sizes and I have tested that all included sizes are available in all datacenters.
As many partners will know, GetBuildAgent can be used to create an Azure VM, which includes a self-hosted agent for Azure DevOps. With this update, you can use the same template for creating agents for GitHub Actions and you also have a field determining the number of build agents you want to run on the Azure VM.
When creating agents for GitHub actions you need to specify a token, an organization url and an agent url. In the information popup with each field, you can see where to get the corresponding information.
The ARM templates also have support for creating Windows 11 Azure VMs. I have however disabled this option due to this bug. When I have a solution for the bug, I will enable Windows 11 as option for the ARM templates.
Pingback: An update to the ARM templates | Pardaan.com
For a few weeks now, VMs created with the “Windows Server 2019 with containers” operating system using the ARM templates give an error when trying to create dockers inside them.
The VM is created successfully, but if you try to add a new docker (for example using “New-BccontainerWizard”), it fails with the following error message:
“Write-Error: docker: Error response from daemon: hcsshim::CreateComputeSystem 37a194b025aca2683c981c64bd02b1181b2c35abd0579ee5c416de81dbb16029: The paging file is too small for this operation to complete.”
For a few weeks now, machines created with the X operating system using the ARM templates give an error when trying to create dockers inside them.
Using “Windows Server 2019” or “Windows Server 2022” the dockers will be created successfully.
The Windows Server 2019 with containers is using a pre-installed server+docker version.
Since the news with Mirantis (DockerMsftProvider) and Docker Desktop, I am not sure what will happen to Windows Server 2019 with containers.
I will investigate and probably remove the Windows Server 2019 with Containers OS from the ARM templates.
For now – I will set the default to be Windows Server 2019, which uses my own script to install docker.