-
Notifications
You must be signed in to change notification settings - Fork 2k
Description
The nightly pipeline is failing for .NET 11 arm32 Ubuntu Resolute (26.04) images because the upstream base image ubuntu.azurecr.io/ubuntu:resolute no longer includes the v7 variant in its OCI image config or manifest index platform entries.
Failing build: https://dev.azure.com/dnceng/internal/_build/results?buildId=2914276&view=results
ImageBuilder's ValidatePlatformIsCompatibleWithBaseImage check fails:
Unhandled exception: System.InvalidOperationException: Platform 'src/runtime-deps/11.0/resolute/arm32v7/Dockerfile'
is configured with an architecture that is not compatible with the base image
'msdotnetcontainersstaging.azurecr.io/mirror/ubuntu.azurecr.io/ubuntu:resolute':
Manifest platform:
Architecture: ARM
Variant: v7
Base image:
Architecture: ARM
Variant:
RCA
Canonical changed the build system for Resolute images on ubuntu.azurecr.io from Docker to rockcraft/umoci. Inspecting image history (docker image history $digest) confirms the build tool change. The new build (published 2026-02-27 ~09:02 UTC) does not set the variant field in the image config or manifest index.
Only Resolute (26.04) is affected. Noble (24.04) and Jammy (22.04) on the same registry still use Docker-based builds and correctly include the variant. Docker Hub ubuntu:resolute images are also unaffected.
Example commands to show image variants
OLD_ACR="ubuntu.azurecr.io/ubuntu@sha256:11d1bb93e2924502b4fc297dd225151b5b6477521dfdd6f092d5b920f4cf0dc2"
echo "Previous image ($OLD_ACR)"
oras manifest fetch "$OLD_ACR" --pretty | jq '.manifests[] | select(.platform.architecture=="arm") | .platform'
NEW_ACR="ubuntu.azurecr.io/ubuntu@sha256:671eb73c0246efadd5bcbc700c5e4f44cb5b046019769dce7649accbec5211a5"
echo "Current image ($NEW_ACR)"
oras manifest fetch "$NEW_ACR" --pretty | jq '.manifests[] | select(.platform.architecture=="arm") | .platform'
DOCKERHUB="docker.io/library/ubuntu@sha256:fed6ddb82c61194e1814e93b59cfcb6759e5aa33c4e41bb3782313c2386ed6df"
echo "DockerHub image ($DOCKERHUB)"
oras manifest fetch "$DOCKERHUB" --pretty | jq '.manifests[] | select(.platform.architecture=="arm") | .platform'Output:
Previous image (ubuntu.azurecr.io/ubuntu@sha256:11d1bb93e2924502b4fc297dd225151b5b6477521dfdd6f092d5b920f4cf0dc2)
{
"os": "linux",
"architecture": "arm",
"variant": "v7"
}
Current image (ubuntu.azurecr.io/ubuntu@sha256:671eb73c0246efadd5bcbc700c5e4f44cb5b046019769dce7649accbec5211a5)
{
"architecture": "arm",
"os": "linux"
}
DockerHub image (docker.io/library/ubuntu@sha256:fed6ddb82c61194e1814e93b59cfcb6759e5aa33c4e41bb3782313c2386ed6df)
{
"architecture": "arm",
"os": "linux",
"variant": "v7"
}Possible Workarounds for .NET
- Wait for a (potential) fix from Canonical. However, this may be an intentional change.
- Relax Image Builder validation to allow treat missing variant as compatible with
v7forarmarchitecture. - Temporarily skip the resolute arm32v7 build.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status