You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac M1设备Dev Container中Azure Functions启动报错求助

解决Mac M1下Dev Container运行Azure Functions的Rosetta错误

问题根源

你的Mac M1是ARM64架构,当前使用的mcr.microsoft.com/devcontainers/dotnet:8.0-bookworm默认是AMD64(x86_64)镜像,在ARM设备上运行依赖Rosetta 2转译。但Azure Functions Core Tools的部分组件未适配好转译环境,导致找不到x86的动态链接器/lib64/ld-linux-x86-64.so.2;而.NET Aspire能正常运行,是因为它的ARM兼容性更好。

可行解决方案

1. 换用ARM64原生镜像(推荐)

直接修改Dev Container的镜像源为ARM64版本,彻底绕开Rosetta转译问题:
修改Dockerfile的基础镜像:

FROM mcr.microsoft.com/devcontainers/dotnet:8.0-bookworm-arm64v8

重新构建容器后,原生适配M1架构,不会再出现转译相关错误。

2. 强制开启Rosetta转译支持(若必须用AMD64镜像)

如果一定要保留AMD64镜像,需在Dev Container配置里明确开启转译权限:
在devcontainer.json中添加以下配置项:

"runArgs": [
  "--platform=linux/amd64",
  "--privileged"
]

另外要确保Mac上已经安装Rosetta 2,终端执行这条命令确认:

softwareupdate --install-rosetta --agree-to-license

3. 重装适配版本的Azure Functions Core Tools

在Dev Container里先卸载现有工具,再安装对应架构的版本:

  1. 先卸载旧版本(以v4为例):
sudo apt remove azure-functions-core-tools-4 -y
  1. 如果用ARM64镜像,执行以下命令安装ARM版工具:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=arm64] https://packages.microsoft.com/debian/12/prod bookworm main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt update && sudo apt install azure-functions-core-tools-4 -y

验证方法

  1. 重新构建并进入Dev Container
  2. 执行func host start测试函数启动
  3. 检查控制台是否还有Rosetta相关报错

内容的提问来源于stack exchange,提问作者Weissvonnix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:05:02