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

.NET Core Docker images will move to multi-arch based tags #239

Closed
kendrahavens opened this issue May 16, 2017 · 4 comments
Closed

.NET Core Docker images will move to multi-arch based tags #239

kendrahavens opened this issue May 16, 2017 · 4 comments

Comments

@kendrahavens
Copy link
Contributor

Summary

Docker has a multi-arch feature that microsoft/dotnet-nightly recently started utilizing. The plan is to port this to the official microsoft/dotnet repo shortly. The multi-arch feature allows a single tag to be used across multiple machine configurations. Without this feature each architecture/OS/platform requires a unique tag. For example, the microsoft/dotnet:1.0-runtime tag is based on Debian and microsoft/dotnet:1.0-runtime-nanoserver if based on Nano Server. With multi-arch there will be one common microsoft/dotnet:1.0-runtime tag. If you pull that tag from a Linux container environment you will get the Debian based image whereas if you pull that tag from a Windows container environment you will get the Nano Server based image. This helps provide tag uniformity across Docker environments thus eliminating confusion.

Current microsoft/dotnet tags:

New multi-arch microsoft/dotnet-nightly tags:

This change has been in microsoft/dotnet-nightly for a little over a week. If you have feedback please file an issue on the .NET Core Docker GitHub repo.

.NET Core Docker Tools

The tooling to produce multi-arch tags is still evolving. As a result we found it necessary to create some tooling to build the images and produce the manifest that enables multi-arch. This tooling is open sourced as well.

Reposting from dotnet/announcements

@galvesribeiro
Copy link
Member

First, thanks to @TerribleDev for remind that it was in the announcement repo, and sorry to all others being spammed. I though I was in the proper repo because the thread wasn't closed. Sorry my bad. (@kendrahavens forgot to lock it 😄 )

But in all cases, even being easy to create a Dockerfile, you will eventually get tons of questions asking "how to create a Windows Server Core with .Net Core image?" from newcomers really soon. So I think it don't hurt to have that image published.

Btw, @TerribleDev, when I mentioned missing APIs I was talking about WIN32 APIs, not .Net ones.

@kendrahavens
Copy link
Contributor Author

Sorry, folks. Locking the conversation in the announcements repo let's us limit the notifications subscribers get there.

Hey, I was saying that it should be on the list of .Net Core images since it is a valid scenario.

Thank you @galvesribeiro! I agree, we should make it an easy scenario to use. We are working with the VSTS team now to make a full .NET framework "build" image that would have msbuild, .NET Core sdk, and common assembly references to help with the monolithic scenarios you mention.

@TerribleDev This is precisely the scenario we are thinking of. It's good to hear more parties are interested in this.

MichaelSimons pushed a commit to MichaelSimons/dotnet-docker that referenced this issue Aug 23, 2019
Updates the CopyAcrImages command to optionally incorporate the data from the image info file. This is necessary to handle image tags that make use of dynamically generated values, such as timestamps. Without these changes, Image Builder would calculate a new tag value each time it is invoked. This is obviously not good when we're trying to reference the tag of an image that was built in a separate build step.

By making use of the image info file that was generated when the image was built, we know the exact static value of the tag that needs to be referenced. So when the CopyAcrImages command runs and finds a Platform to process, it looks up the tag value in the image info file instead of using the value that was calculated when parsing the manifest.
@ronkpunk
Copy link

Hello, I'm trying to get a multi-arch docker image, starting from "mcr.microsoft.com/dotnet/aspnet:6.0" but I've an issue creating the "arm/v7" image.

Is this the right place where I can ask for (and maybe resolve) my issue?

Thank you in advance

@mthalman
Copy link
Member

@ronkpunk - Please post your question to https://github.com/dotnet/dotnet-docker/discussions.

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

No branches or pull requests

4 participants