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

Mquery not producing results if on Ubuntu Linux arm64 (AWS Graviton) #11

Closed
iemejia opened this issue Jan 27, 2021 · 4 comments
Closed

Comments

@iemejia
Copy link

iemejia commented Jan 27, 2021

Hello, first I want to thank you for creating this tool!

I was trying to run the docker image of this project via docker on an AWS Graviton VM and found that it does not produce the expected output:

$ docker run --rm mplatform/mquery openjdk:11
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

$ docker version
Client: Docker Engine - Community
 Version:           20.10.2
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        2291f61
 Built:             Mon Dec 28 16:17:56 2020
 OS/Arch:           linux/arm64
 Context:           default
 Experimental:      true

Same run in a amd64 VM:

$ docker run --rm mplatform/mquery openjdk:11
Image: openjdk:11
 * Manifest List: Yes
 * Supported platforms:
   - linux/amd64
   - linux/arm64
   - windows/amd64:10.0.17763.1697
   - windows/amd64:10.0.14393.4169

$ docker version
Client: Docker Engine - Community
 Version:           20.10.2
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        2291f61
 Built:             Mon Dec 28 16:17:43 2020
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true
@iemejia
Copy link
Author

iemejia commented Jan 27, 2021

Oups it seems there is something on my side it is working now. The only weird thing is that warning, is this expected? I don't get why it says amd64. Any ideas?

Updated output on ARM64

docker run --rm mplatform/mquery openjdk:11
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
Image: openjdk:11
 * Manifest List: Yes
 * Supported platforms:
   - linux/amd64
   - linux/arm64
   - windows/amd64:10.0.17763.1697
   - windows/amd64:10.0.14393.4169

@estesp
Copy link
Owner

estesp commented Jan 27, 2021

This is actually the output of the Docker runtime, and appears to be new in Docker 20.10 (versus the 19.xx releases); I believe the manifest list resolution (which I should go learn what's changed! 😇 ) is comparing what the manifest list entry "claims" the architecture is for the mplatform/mquery image that runs on Graviton (arm64/v8) with the encoded os/arch entry in the image itself. Because I "cheat" when I create mplatform/mquery architecture specific builds and just cross-build the various architectures from a linux/amd64 system, that's what gets encoded in the image metadata, even though the binary in that FROM scratch image is properly a linux/arm64/v8 binary.

There are some discussions around this mismatch from the BuildKit community that I should go follow up on as well.

The empty response from your prior run is probably my cloud-hosted function getting rate limited by DockerHub, which is a separate issue I'm working on resolving with an update to mquery's hosting. I also need to expose that error response as it is being swallowed by the tool right now.

@estesp
Copy link
Owner

estesp commented Jan 27, 2021

Forgot there are already more details here in #9 😅 (which also references docker/for-linux#1170)

@iemejia
Copy link
Author

iemejia commented Jan 27, 2021

Thanks for your detailed answer. I was going crazy for the now working case rate limiting makes sense. I am going to close then this in favor of #9

@iemejia iemejia closed this as completed Jan 27, 2021
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

2 participants