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.
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 All-Hands-AI/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:
.