dotnet / dotnet/docker-tools

Stop using Microsoft/GitHub's `ubuntu-*` images as the linux-x64 build image for .NET pipelines

Open
#1,728 2 comments 0 reactions 1 assignee Claimed by @lbussell View on GitHub
area-infrastructure
Dominant language
C#
Stars
181
Forks
67
Avg merge
2d 15h
Merged PRs (30d)
10

Description

Today, we use the following default images for linux-amd64 builds:
- Public: `ubuntu-latest`
- Internal: `1es-ubuntu-2204`

Downsides of using these images:
- We (.NET) do not control the contents of these images. And they contain _a lot_ of [stuff](https://github.com/actions/runner-images/blob/ubuntu22/20250602.1/images/ubuntu/Ubuntu2204-Readme.md).
- Using them causes slower builds in two ways
- Cleaning off the pre-loaded docker images takes extra time
- Public PR validation using the default pool ("Azure Pipelines") and the Microsoft-hosted images is limited to 200 concurrent jobs across the entire dotnet org. Oftentimes we have to wait for agents during PR validation. We have much more capacity in other pools like `NetCore-Public`. Available pools can be found at https://dev.azure.com/dnceng-public/public/_settings/agentqueues

To me it looks like we should use the following images, until Azure Linux 3 images are available from dnceng:
- Public: `build.ubuntu.2204.amd64.open`
- Internal: `build.ubuntu.2204.amd64`

See the following code:

https://github.com/dotnet/docker-tools/blob/99554581b18e4818ca393d430a32f242007ea0fa/eng/common/templates/variables/dotnet/common.yml#L21-L22

https://github.com/dotnet/docker-tools/blob/99554581b18e4818ca393d430a32f242007ea0fa/eng/common/templates/variables/common.yml#L68-L69

https://github.com/dotnet/docker-tools/blob/99554581b18e4818ca393d430a32f242007ea0fa/eng/common/templates/stages/dotnet/publish.yml#L48-L56

https://github.com/dotnet/docker-tools/blob/99554581b18e4818ca393d430a32f242007ea0fa/eng/common/templates/stages/dotnet/build-and-test.yml#L57-L66

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.