I think I can use 2.2 in global.json, however, I would like to prevent potential future builds from failing. Is there any ubuntu image considered as immutable? From what I can tell, there are two "main" images listed in https://www.appveyor.com/docs/linux-images-software/. Is the Ubuntu1804 considered as stable (no breaking changes in the future)? Or rather both of them can be modified so in case of missing SDKs I need to update my code?
Process of updating Ubuntu images implies that it will update any software installed in an image. We update images from time to time to make them relevant to users needs. Unfortunately, we do not maintain any kind of "stable" image.
As a short term workaround, you may use 'previous ubuntu' image which have .NET SDK 2.2.104 installed in it. But on the next update of images, we will rotate them and current 'ubuntu' image with SDK 2.2.300 will become 'previous ubuntu' image.
If you need a stable image you may consider Appveyor On-premise and maintain your very own image.