Produce multi-arch tags during the build stage of the builds
- 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.