dotnet / dotnet-buildtools-prereqs-docker

Used to maintain the Docker images hosted at the mcr.microsoft.com/dotnet-buildtools/prereqs image repository
MIT License
53 stars 99 forks source link

Split apart Dockerfile groupings to avoid long-running build jobs #1033

Open mthalman opened 1 month ago

mthalman commented 1 month ago

The CBL Mariner 2.0 and Azure Linux 3.0 build jobs currently take up to 7+ hours to complete. We should look into breaking up the grouping of Dockerfiles so they can be built in separate jobs. This would require determining the dependencies amongst those Dockerfiles to find all the "roots". Then we can get a better picture of what the graphs look like and what potential benefits there may be for splitting things up.

lbussell commented 1 month ago

Related: #1024 should also decrease build times for Mariner/AzLinux

lbussell commented 1 month ago

[Triage] We should wait until https://github.com/dotnet/dotnet-buildtools-prereqs-docker/issues/1024 is fixed to determine how granularly we might need to break up the image build legs. We also need to map out the graph of image dependencies in this repo to determine what the shortest possible build time for these images would be to determine if there will even be a good ROI on this work.

jkoritzinsky commented 1 month ago

We've done some of this by splitting up the net8.0 and net9.0 images (by duplicating the crossdeps image) which enabled ImageBuilder to see the separate trees.