Skip to content
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

Add information about multi-RID container publishing in 8.0.405, 9.0.102, and 9.0.2xx to SDK Containerization reference #44440

Open
baronfel opened this issue Jan 19, 2025 · 0 comments
Assignees
Labels
dotnet-fundamentals/svc 📌 seQUESTered Identifies that an issue has been imported into Quest.

Comments

@baronfel
Copy link
Member

baronfel commented Jan 19, 2025

Type of issue

Missing information

Description

In these versions of the SDK we added a quite large feature - support for multi-RID publishing of containers. In short, when a project is published with /t:PublishContainer we now check the publish request and pivot behaviors:

  • if a single RID publish was specified, either by RuntimeIdentifier directly or ContainerRuntimeIdentifier, the same single-RID container is generated as before
  • if no single RID was specified AND either RuntimeIdentifiers directly or ContainerRuntimeIdentifiers was set, we publish the app for each RID in the RID list, then join all of the generated images together in an OCI Image Index - a structure that lets you put multiple architecture-specific images behind a shared name.

The up-shot of this change is that it can become easier to publish and work with containers in mixed-architecture development and production environments. A developer working on an linux-x64 host can publish a container for both linux-x64 and linux-arm64 and then deploy their app to hardware of either kind without needing to change an image name or label.

Publishing these multi-arch Indexes is very widespread these days and has broad tooling support.

As a user analogy, think of the new feature as

for RID in RIDs do
  docker build --platform RID

docker manifest create <SOME NAME> [list of platform-specific image identifiers]
docker manifest push <SOME NAME>

Page URL

https://learn.microsoft.com/en-us/dotnet/core/containers/publish-configuration

Content source URL

https://github.com/dotnet/docs/blob/main/docs/core/containers/publish-configuration.md

Document Version Independent Id

87603b1d-8af0-ecb0-fca2-aacd3d7ef5a0

Article author

@gewarren

Metadata

  • ID: a8539d30-07b2-29ff-8e9b-09d83bc066e5
  • Service: dotnet-fundamentals

Related Issues


Associated WorkItem - 417515

@dotnet-policy-service dotnet-policy-service bot added the ⌚ Not Triaged Not triaged label Jan 19, 2025
@gewarren gewarren self-assigned this Apr 4, 2025
@dotnetrepoman dotnetrepoman bot added the 🗺️ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Apr 4, 2025
@gewarren gewarren added 🗺️ reQUEST Triggers an issue to be imported into Quest. and removed 🗺️ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. labels Apr 4, 2025
@dotnet-policy-service dotnet-policy-service bot removed the ⌚ Not Triaged Not triaged label Apr 4, 2025
@sequestor sequestor bot added 📌 seQUESTered Identifies that an issue has been imported into Quest. and removed 🗺️ reQUEST Triggers an issue to be imported into Quest. labels Apr 4, 2025
@CamSoper CamSoper assigned CamSoper and unassigned gewarren Apr 8, 2025
@CamSoper CamSoper added the 🗺️ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Apr 8, 2025
@dotnet-policy-service dotnet-policy-service bot removed the 🗺️ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Apr 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dotnet-fundamentals/svc 📌 seQUESTered Identifies that an issue has been imported into Quest.
Projects
Status: 🔖 Ready
Development

No branches or pull requests

3 participants