-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
base: main
Are you sure you want to change the base?
Conversation
…ll existing usage of the content root
… OCI APIs - only reading from locally-available manifests
…ng manifest/layer/config to intermediate output paths for incrementality purposes
…<->config digest alignemtn preventing upload
…to the manifest json
ea1f2d1
to
0abe837
Compare
@@ -121,7 +122,8 @@ | |||
|
|||
<PropertyGroup> | |||
<ContainerGenerateLabels Condition="'$(ContainerGenerateLabels)' == ''">true</ContainerGenerateLabels> | |||
<ContainerGenerateLabelsImageCreated Condition="'$(ContainerGenerateLabelsImageCreated)' == ''">true</ContainerGenerateLabelsImageCreated> | |||
<!-- NOTE: this label screws up incrementality - may want to disable it by default --> | |||
<ContainerGenerateLabelsImageCreated Condition="'$(ContainerGenerateLabelsImageCreated)' != 'true'">false</ContainerGenerateLabelsImageCreated> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you use the last write timestamp of the main output assembly instead? That should be close enough to the actual date and is better than nothing.
I've found the created label very useful when troubleshooting people running latest
tag, not realising it may not be the same latest
as the container registry, so it would be a shame to loose it by default.
Fixes dotnet/sdk-container-builds#438
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:
We do all of these things per-RID, every build.
With this PR we attempt to:
Right now, for single-RID containers we are very incremental! The main gaps are: