From 6961a639509076d8dbf0f03c47ed16892940adba Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 16 Jan 2026 00:47:04 +0000 Subject: [PATCH 1/9] Initial plan From 0df0884ca08157172363bdbafde83605e334ac1f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 16 Jan 2026 00:54:23 +0000 Subject: [PATCH 2/9] Update Docker samples to use .NET 10 images Co-authored-by: jkotas <6668460+jkotas@users.noreply.github.com> --- src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-arm64 | 4 ++-- src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-x64 | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-arm64 b/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-arm64 index 5196be167747c1..9e17d27d67eccf 100644 --- a/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-arm64 +++ b/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-arm64 @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64 -COPY --from=mcr.microsoft.com/dotnet/sdk:8.0-cbl-mariner2.0-amd64 /usr/share/dotnet /usr/share/dotnet +FROM mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm64 +COPY --from=mcr.microsoft.com/dotnet/sdk:10.0 /usr/share/dotnet /usr/share/dotnet RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet ENV DOTNET_NOLOGO=true diff --git a/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-x64 b/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-x64 index 18b3c58b286e3b..180caa0e73b513 100644 --- a/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-x64 +++ b/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-x64 @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-amd64 -COPY --from=mcr.microsoft.com/dotnet/sdk:8.0-cbl-mariner2.0-amd64 /usr/share/dotnet /usr/share/dotnet +FROM mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-amd64 +COPY --from=mcr.microsoft.com/dotnet/sdk:10.0 /usr/share/dotnet /usr/share/dotnet RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet ENV DOTNET_NOLOGO=true From cdccdc0163da773d49f52ac2e1e3fb9c3ab72192 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 16 Jan 2026 01:12:07 +0000 Subject: [PATCH 3/9] Update containers.md to reference Ubuntu 18.04 as oldest compatible version for .NET 10 Co-authored-by: jkotas <6668460+jkotas@users.noreply.github.com> --- src/coreclr/nativeaot/docs/containers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/nativeaot/docs/containers.md b/src/coreclr/nativeaot/docs/containers.md index 1a3e613a4506d9..56e8c6233ff9a0 100644 --- a/src/coreclr/nativeaot/docs/containers.md +++ b/src/coreclr/nativeaot/docs/containers.md @@ -16,7 +16,7 @@ For cloud native apps, build and runtime OS typically match, at least if you use The .NET build has this exact same need. We produce several [container images to enable cross-building](https://github.com/dotnet/runtime/blob/main/docs/workflow/using-docker.md#the-official-runtime-docker-images). -You can use these images to build native AOT apps which work on distros as old as Ubuntu 16.04. These build images are not supported, but are expected to work (since we use them to build .NET on daily basis). +You can use these images to build native AOT apps which work on distros as old as Ubuntu 18.04. These build images are not supported, but are expected to work (since we use them to build .NET on daily basis). ### Containerized build @@ -58,7 +58,7 @@ Hello, World! The app can be tested in an old Linux container, again through volume mounting. ```bash -$ docker run --rm -v $(pwd)/app:/app -w /app ubuntu:16.04 ./cross-build-test +$ docker run --rm -v $(pwd)/app:/app -w /app ubuntu:18.04 ./cross-build-test Hello, World! ``` From f03270990ad93d8ac50df71eed4cf8ecaffa30cf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 16 Jan 2026 01:13:31 +0000 Subject: [PATCH 4/9] Fix typo in containers.md - correct x64-x64 Dockerfile link Co-authored-by: jkotas <6668460+jkotas@users.noreply.github.com> --- src/coreclr/nativeaot/docs/containers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/nativeaot/docs/containers.md b/src/coreclr/nativeaot/docs/containers.md index 56e8c6233ff9a0..867acd9c1bd9fc 100644 --- a/src/coreclr/nativeaot/docs/containers.md +++ b/src/coreclr/nativeaot/docs/containers.md @@ -23,7 +23,7 @@ You can use these images to build native AOT apps which work on distros as old a The following Dockerfiles demonstrate how to construct a working build environment that can be used for volume-mounted docker builds. They can be modified to use the other image flavors we provide, like Alpine. - [Dockerfile.cross-build-x64-arm64](Dockerfile.cross-build-x64-arm64) -- [Dockerfile.cross-build-x64-x64](Dockerfile.cross-build-x64-arm64) +- [Dockerfile.cross-build-x64-x64](Dockerfile.cross-build-x64-x64) ### x64 From a84f5317d9bdc7a37f32214542bbfe4f0f70894c Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Thu, 15 Jan 2026 17:46:13 -0800 Subject: [PATCH 5/9] Apply suggestions from code review --- src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-arm64 | 1 - src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-x64 | 1 - src/coreclr/nativeaot/docs/containers.md | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-arm64 b/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-arm64 index 9e17d27d67eccf..eb63be2503b447 100644 --- a/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-arm64 +++ b/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-arm64 @@ -1,4 +1,3 @@ FROM mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm64 COPY --from=mcr.microsoft.com/dotnet/sdk:10.0 /usr/share/dotnet /usr/share/dotnet -RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet ENV DOTNET_NOLOGO=true diff --git a/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-x64 b/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-x64 index 180caa0e73b513..c783b6a0d22308 100644 --- a/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-x64 +++ b/src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-x64 @@ -1,4 +1,3 @@ FROM mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-amd64 COPY --from=mcr.microsoft.com/dotnet/sdk:10.0 /usr/share/dotnet /usr/share/dotnet -RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet ENV DOTNET_NOLOGO=true diff --git a/src/coreclr/nativeaot/docs/containers.md b/src/coreclr/nativeaot/docs/containers.md index 867acd9c1bd9fc..718759c504466a 100644 --- a/src/coreclr/nativeaot/docs/containers.md +++ b/src/coreclr/nativeaot/docs/containers.md @@ -16,7 +16,7 @@ For cloud native apps, build and runtime OS typically match, at least if you use The .NET build has this exact same need. We produce several [container images to enable cross-building](https://github.com/dotnet/runtime/blob/main/docs/workflow/using-docker.md#the-official-runtime-docker-images). -You can use these images to build native AOT apps which work on distros as old as Ubuntu 18.04. These build images are not supported, but are expected to work (since we use them to build .NET on daily basis). +You can use these images to build native AOT apps which work on distros as old as the runtime is compatible with, see Linux compatibility in [release notes](https://github.com/dotnet/core/blob/main/release-notes/) for details. These build images are not supported, but are expected to work (since we use them to build .NET on daily basis). ### Containerized build From 5a05e5b7a11a4d6808f5b337a3c4f984cec61079 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Thu, 15 Jan 2026 17:54:49 -0800 Subject: [PATCH 6/9] Update src/coreclr/nativeaot/docs/containers.md --- src/coreclr/nativeaot/docs/containers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/nativeaot/docs/containers.md b/src/coreclr/nativeaot/docs/containers.md index 718759c504466a..6255e40e7444b2 100644 --- a/src/coreclr/nativeaot/docs/containers.md +++ b/src/coreclr/nativeaot/docs/containers.md @@ -16,7 +16,7 @@ For cloud native apps, build and runtime OS typically match, at least if you use The .NET build has this exact same need. We produce several [container images to enable cross-building](https://github.com/dotnet/runtime/blob/main/docs/workflow/using-docker.md#the-official-runtime-docker-images). -You can use these images to build native AOT apps which work on distros as old as the runtime is compatible with, see Linux compatibility in [release notes](https://github.com/dotnet/core/blob/main/release-notes/) for details. These build images are not supported, but are expected to work (since we use them to build .NET on daily basis). +You can use these images to build native AOT apps which work on distros as old as Ubuntu 18.04, see [Linux compatibility in release notes](https://github.com/dotnet/core/blob/main/release-notes/10.0/supported-os.md#linux-compatibility) for details. These build images are not supported, but are expected to work (since we use them to build .NET on daily basis). ### Containerized build From adad787c3c76a72145017c0d7b7da01d1798dac9 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Thu, 15 Jan 2026 17:55:26 -0800 Subject: [PATCH 7/9] Update src/coreclr/nativeaot/docs/containers.md --- src/coreclr/nativeaot/docs/containers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/nativeaot/docs/containers.md b/src/coreclr/nativeaot/docs/containers.md index 6255e40e7444b2..c515dc3ed9310d 100644 --- a/src/coreclr/nativeaot/docs/containers.md +++ b/src/coreclr/nativeaot/docs/containers.md @@ -16,7 +16,7 @@ For cloud native apps, build and runtime OS typically match, at least if you use The .NET build has this exact same need. We produce several [container images to enable cross-building](https://github.com/dotnet/runtime/blob/main/docs/workflow/using-docker.md#the-official-runtime-docker-images). -You can use these images to build native AOT apps which work on distros as old as Ubuntu 18.04, see [Linux compatibility in release notes](https://github.com/dotnet/core/blob/main/release-notes/10.0/supported-os.md#linux-compatibility) for details. These build images are not supported, but are expected to work (since we use them to build .NET on daily basis). +You can use these images to build native AOT apps which work on distros as old as Ubuntu 18.04, see [Linux compatibility in release notes](https://github.com/dotnet/core/blob/main/release-notes/10.0/supported-os.md#linux-compatibility) for details. These build images are not supported, but are expected to work (since we use them to build .NET on daily basis). ### Containerized build From 9b784fcdd996abdd8f71e1e121a792a4cc4a35a2 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Thu, 15 Jan 2026 17:56:20 -0800 Subject: [PATCH 8/9] Update src/coreclr/nativeaot/docs/containers.md --- src/coreclr/nativeaot/docs/containers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/nativeaot/docs/containers.md b/src/coreclr/nativeaot/docs/containers.md index c515dc3ed9310d..0ae22ec077209a 100644 --- a/src/coreclr/nativeaot/docs/containers.md +++ b/src/coreclr/nativeaot/docs/containers.md @@ -20,7 +20,7 @@ You can use these images to build native AOT apps which work on distros as old a ### Containerized build -The following Dockerfiles demonstrate how to construct a working build environment that can be used for volume-mounted docker builds. They can be modified to use the other image flavors we provide, like Alpine. +The following Dockerfiles demonstrate how to construct a working build environment that can be used for volume-mounted docker builds. They can be modified to use the other .NET runtime versions or other image flavors we provide, like Alpine. - [Dockerfile.cross-build-x64-arm64](Dockerfile.cross-build-x64-arm64) - [Dockerfile.cross-build-x64-x64](Dockerfile.cross-build-x64-x64) From d9c92f147a569a6a37d76325a96bc83661aca4cc Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Thu, 15 Jan 2026 17:57:05 -0800 Subject: [PATCH 9/9] Update src/coreclr/nativeaot/docs/containers.md --- src/coreclr/nativeaot/docs/containers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/nativeaot/docs/containers.md b/src/coreclr/nativeaot/docs/containers.md index 0ae22ec077209a..c8ae8713fd0a25 100644 --- a/src/coreclr/nativeaot/docs/containers.md +++ b/src/coreclr/nativeaot/docs/containers.md @@ -16,7 +16,7 @@ For cloud native apps, build and runtime OS typically match, at least if you use The .NET build has this exact same need. We produce several [container images to enable cross-building](https://github.com/dotnet/runtime/blob/main/docs/workflow/using-docker.md#the-official-runtime-docker-images). -You can use these images to build native AOT apps which work on distros as old as Ubuntu 18.04, see [Linux compatibility in release notes](https://github.com/dotnet/core/blob/main/release-notes/10.0/supported-os.md#linux-compatibility) for details. These build images are not supported, but are expected to work (since we use them to build .NET on daily basis). +You can use these images to build native AOT apps which work on distros as old as Ubuntu 18.04 in .NET 10, see [Linux compatibility in release notes](https://github.com/dotnet/core/blob/main/release-notes/10.0/supported-os.md#linux-compatibility) for details. These build images are not supported, but are expected to work (since we use them to build .NET on daily basis). ### Containerized build