-
Notifications
You must be signed in to change notification settings - Fork 46
Description
Today, you can't publish containers for a project with a list of RIDs that contains musl and non-musl Linux RID values. This is because we take the set of RIDs and check it against the platforms supported by the base image we choose - if there are any RIDs that are unsupported by the selected base image then we bail out.
This bail-out behavior is an artifact of us choosing a single base image - because for the .NET containers the base images are usually Debian/Ubuntu OR Alpine, each image only supports glibc- or musl- based RIDs.
We could make this process easier by being more intelligent about how we partition the RIDs for compatibility-checking when selecting the base image(s) - instead of forcing the use of a single base image as part of inference, we could instead infer a set of base images and 'assign' specific RIDs to each of those base images. Then, when we set up the inner builds, each build would be given its specific base image and RID to build for exactly as we do today.
The main difference we would want to make is to automatically apply a -alpine tag section to the tags for the musl-based RIDs, to ensure that users don't use the Alpine variants accidentally.