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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant