-
Notifications
You must be signed in to change notification settings - Fork 664
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
Support amd64 on M1 with docker instance #2422
Comments
Hi @Fmstrat, Currently, Multipass only supports the native architecture of the host it's running on. If you really need to do work, you'll need to use the arm64 Docker image here. That said, we are currently evaluating running Multipass cross architecture (emulated amd64) on M1. Of course, performance is not good, but we are finding that it may be usable depending on what use case is. |
@Fmstrat FWIW this works just fine:
(Why) are you set on amd64 there? Docker should generally be well supported across architectures. |
@Saviq Thanks, but I've got a number of use cases requiring amd64 support. For instance, legacy applications using Meteor are amd64 only. Tableau has no ARM option. Platforms without automation where an image needs to be built and pushed for amd64 direct from a laptop require amd64 compilation. The list goes on ;) We are able to pull this off with Rancher Desktop and nerdctl, but I'd much prefer our team use multipass going forward (and likely will when it supports the items I'm bringing up). |
@Fmstrat ACK, so yeah what @townsend2010 mentioned should help with that, with the performance caveats. |
Duplicate of #886 |
@1l0 sure, that is an option, but not something Multipass needs to do anything with. What's described above can be achieved in Multipass in exactly the same way today. |
@Saviq Fortunately you are right. I've confirmed that it works in Multipass by following methods. multipass shell docker
sudo apt-get install qemu binfmt-support qemu-user-static
docker run --privileged --rm tonistiigi/binfmt --install all
docker run --platform=amd64 {any-amd64-images} |
@1l0 thanks, I just proposed canonical/multipass-blueprints#15 to add this to the
|
My use case requires running a very stubborn VPN client that is only built for x86 and requires a display server. While this may be possible by running the client inside a Docker container (although this would really complicate networking since all requests would now have to be routed through this container, if it works at all), this sounds really cumbersome. Being able to run x86 binaries on arm64 Linux would make things much easier. |
What are you trying to do?
Run an amd64 container on an m1 mac:
What's your proposed solution?
Support some form of building/running amd64 instances with multipass.
Additional context
There may be a workaround for this based on @Saviq 's comment here: https://discourse.ubuntu.com/t/announcing-the-first-release-candidate-for-apple-m1-support/24445/19 but it does not work natively (nor have I been able to discover the method in the documentation).
Thanks!
The text was updated successfully, but these errors were encountered: