Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Draft of incremental container generation #49556

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 17 commits into
base: main
Choose a base branch
from

Conversation

baronfel
Copy link
Member

This is a wholesale rewrite of the way that we generate container images to support better MSBuild incrementality (as well as controlling/caching the location that the SDK stores the pulled base image layers/manifests/etc).

In general, today we re-do a lot of work for each individual image:

  • manifest pulling
  • RID selection
  • app layer creation
  • app manifest/config creation
  • publishing to various destinations

We do all of these things per-RID, every build.

With this PR we attempt to:

  • pull manifests once (and support caching them!)
  • pull layers once
  • use the data from this stage as inputs to the rest of the container generation
  • make the app-level layer, configuration, and manifest generation incremental
  • separate the creation of the artifacts from the sending of the artifacts
  • disentangle the giant ball of mud that CreateNewImage is :)

Right now, for single-RID containers we are very incremental! The main gaps are:

  • rebuilds are missing some data (need input from @rainersigwald on the best way to ensure that Items created during Task execution are actually handled correctly across runs)
  • the multi-arch manifest creation/publishing isn't yet created

@baronfel baronfel self-assigned this Jun 25, 2025
@baronfel baronfel added the Area-Containers Related to dotnet SDK containers functionality label Jun 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Containers Related to dotnet SDK containers functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant