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

Multi-platform tags don't work correctly for Windows client #326

Closed
richlander opened this issue Feb 28, 2023 · 7 comments
Closed

Multi-platform tags don't work correctly for Windows client #326

richlander opened this issue Feb 28, 2023 · 7 comments
Assignees
Labels
bug Something isn't working

Comments

@richlander
Copy link
Member

richlander commented Feb 28, 2023

Perhaps we're doing it wrong.

C:\>ver

Microsoft Windows [Version 10.0.22621.1265]

C:\>docker run --rm mcr.microsoft.com/dotnet/runtime:6.0-nanoserver-ltsc2022 cmd /c "ver"

Microsoft Windows [Version 10.0.20348.1547]

C:\>docker run --rm mcr.microsoft.com/dotnet/runtime:6.0 cmd /c "ver"

Microsoft Windows [Version 10.0.17763.4010]

That's not the behavior we want, right? The .NET multi-platform tag is servicing up a Windows 1809 image, as opposed 2022. I'm on a 22H2 host system.

Should we be guiding users to not use multi-platform tags for Windows workloads? If not, what's the best practice? I'm wondering if we should remove these Windows entries altogether, in newer releases. It's not really worth it if they produce the wrong results.

Here's the manifest for the 6.0 tag

docker manifest inspect mcr.microsoft.com/dotnet/runtime:6.0
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
   "manifests": [
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1160,
         "digest": "sha256:03104a49e91e3c7e7b418f58fde632d417034f4432af5a1fb5c837be016a1072",
         "platform": {
            "architecture": "amd64",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1160,
         "digest": "sha256:be7c3f289fd24fa6d9f951b6492f10793a168bf1ff4b8e19886bb4126d4c5967",
         "platform": {
            "architecture": "arm",
            "os": "linux",
            "variant": "v7"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1160,
         "digest": "sha256:3726b2709032fafb4c9ceb088267170b4cced31dbbede601af550502fdbe04f6",
         "platform": {
            "architecture": "arm64",
            "os": "linux",
            "variant": "v8"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1754,
         "digest": "sha256:2562fee514f160375d5ae1eaf139d9eb3824551af6a4c0de0da90f794a299b62",
         "platform": {
            "architecture": "amd64",
            "os": "windows",
            "os.version": "10.0.17763.4010"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1754,
         "digest": "sha256:f74644d47bf733c4292bd1c2aa32de1384d65c5cf74cfc0bcc05f978b5b5348d",
         "platform": {
            "architecture": "amd64",
            "os": "windows",
            "os.version": "10.0.20348.1547"
         }
      }
   ]
}
@richlander richlander added the bug Something isn't working label Feb 28, 2023
@microsoft-github-policy-service microsoft-github-policy-service bot added the triage New and needs attention label Feb 28, 2023
@richlander richlander changed the title Multi-arch tags don't work correctly Multi-platform tags don't work correctly for Windows Feb 28, 2023
@tfenster
Copy link

@richlander I think this behavior is probably caused by this containerd/containerd#6508 bug. So I would say the manifest approach is exactly the right one (or at least I as a user/developer would like to see them), but the implementation doesn't work as expected at the moment where you don't necessarily get the image that you expect if your pull references a manifest

@richlander
Copy link
Member Author

richlander commented Mar 1, 2023

Yup. We've seen this issue going back many years, just never filed an issue on it. Perhaps there is another on the same topic in this official repo. If not, it is about time there was.

It is a question of whether the Windows Team is focused on fixing this / advocating for it to be fixed. If not, I think including Windows images in multi-platform manifests doesn't make much sense, since it is encouraging a pattern that delivers poor results.

It is worth saying that the current multi-platform UX works well if you are building, testing, and hosting images on the Windows Server SKU. It's when you are on Windows client that the problem I'm reporting come into play. The only time I interact with Windows Server is via an Azure subscription. Otherwise, I'm interacting with container images on Windows client.

@tfenster
Copy link

tfenster commented Mar 1, 2023

Maybe @judyliu-ms, @vrapolinario or @thecloudtaylor have ideas on this?

@richlander richlander changed the title Multi-platform tags don't work correctly for Windows Multi-platform tags don't work correctly for Windows client Mar 1, 2023
@fady-azmy-msft fady-azmy-msft removed the triage New and needs attention label Mar 28, 2023
@akarshm akarshm assigned akarshm and unassigned npolito-msft Mar 29, 2023
@akarshm
Copy link

akarshm commented Mar 29, 2023

This is being discussed here.

@akarshm akarshm closed this as not planned Won't fix, can't repro, duplicate, stale Mar 29, 2023
@richlander
Copy link
Member Author

I think you misunderstand. It is not being discussed at that issue. The core issue remains.

@akarshm
Copy link

akarshm commented Mar 29, 2023

This is already being discussed in the containerd section.

@richlander
Copy link
Member Author

This change has been made: dotnet/dotnet-docker#4549

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants