Skip to content

[RFC]: add devcontainer support for arm64 architectures #4934

Open
@anandkaranubc

Description

@anandkaranubc

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:

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:.

Metadata

Metadata

Assignees

No one assigned

    Labels

    EnhancementIssue or pull request for enhancing existing functionality.Needs DiscussionNeeds further discussion.RFCRequest for comments. Feature requests and proposed changes.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions