dotnet / dotnet/docker-tools

Produce multi-arch tags during the build stage of the builds

Open
#543 2 comments 0 reactions 0 assignees View on GitHub
area-infrastructure enhancement
Dominant language
C#
Stars
181
Forks
67
Avg merge
2d 15h
Merged PRs (30d)
10

Description

The `build` command pushes _all_ tags of the images it built to the specified staging location. This is unnecessary and incorrect because some of those tags may be multi-arch. Given that they're multi-arch, there'll likely be more than one build job that builds an image that gets tagged with that multi-arch tag. In that case, pushing to the staging location will end up having the tag overwritten by subsequent pushes from other such jobs.

The relevant code is here: https://github.com/dotnet/docker-tools/blob/3bd3f6da3c42c5f18ee54628d90d4afac1df14ad/src/Microsoft.DotNet.ImageBuilder/src/Commands/BuildCommand.cs#L334

**Update from Triage:**
What should happen during the build phase, is the multi-arch tags should get produced and published to the staging location. This would need to be done during the `post-build` leg once all of the concrete images are available. The publish phase should then be updated to simply copy the manifest tags to the final publish location just like what is done with the concrete images today. When this work is done, we will need to ensure ACR handles coping manifest tags appropriately. The publish stage should avoid have any special logic for manifest tags if at all possible.

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.