While Microsoft announce #Azure #Linux 4.0, releases are not publicly available to download as disk image or container image to pull. So instead, I have looked at the slightly older 3.0 release that is published at mcr.microsoft.com/azurelinux/base/core:3.0.
To best test this, I added this to my dotfiles targets and created a container image that can be used with my dev-command to set up a contained system for development purposes. This works, but points out some very clear differences and annoyances
Very minimal footprint; great from a security perspective and low on resources.
There is no dnf. Instead tdnf has to be used.
No ca-certificates, which means out of the box this will have SSL errors when using curl or git with https://
No which, so instead had to use command -v
No awk, so instead went with sed
After these and some other changes, it is quite usable as a shell environment. However, be aware that this is still quite unknown and not a supported option yet. Which can lead to issues installing additional packages
There is no #Tailscase repo that supports Azure Linux directly.
Or worse, dependencies might not even match. It is interesting to see how this will develop. It might be an capable base for container workloads, but it is not well accepted yet. The minimal footprint means assumptions that hold on Fedora or Ubuntu don't.
For example, I had to finish my Go-version of stow, otherwise my dotfiles would not be installed properly. A single binary avoids having to install the Perl interpreter when GNU Stow is used . This points out an important consideration. Each missing tool is a small fix in isolation, but a possible challenge when several of them interact.
https://github.com/gbraad-dotfiles/upstream/commit/dcbfb41be11f52a95cf609ea545f0781dc86a8ad
I purposely did not look at the Azure Linux 4.0 branch, as this needed builds. I prefer to test with published artifacts. So while this does not really indicate what Azure Linux 4.0 will bring, to me it gives an indication that this is a capable platform that can be used for different kind of possible workloads; from application servers, #containers to possibly #AI models.
Used references for branch 3.0:
- https://github.com/microsoft/azurelinux/blob/3.0/toolkit/docs/quick_start/quickstart.md
- registry: mcr.microsoft.com/azurelinux/base/core:3.0
- rpms: https://packages.microsoft.com/azurelinux/3.0/prod/
- iso: https://aka.ms/azurelinux-3.0-x86_64.iso
- https://github.com/microsoft/azurelinux
Branch 4.0 is still in development