-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
Description
This RFC proposes adding ARM64 architecture support to DevContainers to improve compatibility and extend usability for ARM64-based systems.
Related Issues
None
Questions
No.
Other
The current DevContainer support uses the mcr.microsoft.com/devcontainers/universal:2 Docker image, but it lacks native support for ARM64 architectures.
| "image": "mcr.microsoft.com/devcontainers/universal:2", |
This is what happens when you run docker pull mcr.microsoft.com/devcontainers/universal:2 on Apple Silicon:
Error response from daemon: no matching manifest for linux/arm64/v8 in the manifest list entries: no match for platform in manifest: not found
Related links to support that:
- mcr.microsoft.com/devcontainers/universal:2 for M1 Mac devcontainers/images#545
- M series support (macOS) for devcontainer OpenHands/OpenHands#5414
- Support arm64 architecture on Oryx microsoft/Oryx#2133
Based on the above links, there doesn't seem to be an active attempt to make the universal image compatible with arm64.
However for stdlib development, in order to support DevContainer environments on Apple Silicon, alternative Docker images compatible with ARM64 can be explored, such as mcr.microsoft.com/devcontainers/base with Ubuntu or Debian.
I explored the possibility of using "image": "mcr.microsoft.com/devcontainers/base:debian-11" and updating the features accordingly (using node:1 and r-rig:1 instead of "r-apt:0"). The initial results seem promising. However, I believe a comprehensive design approach is needed to selectively support both images based on the developer's architecture. This also includes a thorough testing strategy to check if everything works as expected after introducing the second docker image.
Any advice on this would be greatly appreciated, and I am happy to take on this issue.
Checklist
- I have read and understood the Code of Conduct.
- Searched for existing issues and pull requests.
- The issue name begins with
RFC:.