-
-
Notifications
You must be signed in to change notification settings - Fork 804
[RFC]: add devcontainer support for arm64 architectures #4934
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
Comments
I can definitely see a need, so thank you for opening this issue. Maybe @Planeshifter has some thoughts since he originally created the container files. |
Some preliminary findings:
This comes down to two possible approaches:
Adding to the development aspect, is there a way to test whether the updated devcontainer implementation works as expected for EVERYTHING? |
@Planeshifter Open to your feedback on this. Thanks! |
@anandkaranubc Thanks for the overview! Having multiple devcontainer files seems sensible to me, but I don't know what that user experience is actually like. I'm curious to hear what @Planeshifter thinks, as well. |
From a usability perspective, having multiple devcontainer files should be fine. When creating them with custom options on the GitHub UI, there is a dropdown to select a container: ![]() Similarly, when using the Dev Containers extension in VS Code, one can manually switch between them via the command palette. As for any kind of automated CI/CD testing, this is not something I looked into. Docs only seem to mention manual testing via Codespaces, but maybe there is a way to easily set up some kind of integration tests too to test that various things have been properly setup. Not convinced the effort would be worth it, though. |
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.stdlib/.devcontainer/devcontainer.json
Line 3 in 9f88c8c
This is what happens when you run
docker pull mcr.microsoft.com/devcontainers/universal:2
on Apple Silicon:Related links to support that:
Based on the above links, there doesn't seem to be an active attempt to make the
universal
image compatible witharm64
.However for
stdlib
development, in order to support DevContainer environments on Apple Silicon, alternative Docker images compatible with ARM64 can be explored, such asmcr.microsoft.com/devcontainers/base
with Ubuntu or Debian.I explored the possibility of using
"image": "mcr.microsoft.com/devcontainers/base:debian-11"
and updating thefeatures
accordingly (usingnode:1
andr-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
RFC:
.The text was updated successfully, but these errors were encountered: