MacBook Pro M1 Docker环境下Chalice执行Illegal instruction报错求助
解决M1 Mac Docker环境下Chalice Deploy报Illegal Instruction异常的方法
清理并重新安装依赖
部分依赖可能在编译时引入了Rosetta不兼容的指令集,清理缓存后重新安装可确保适配amd64环境:pip uninstall -y chalice && pip install --no-cache-dir chalice==1.29.0若存在其他二进制依赖(如cryptography),也需按此方式重新安装,避免误装arm64预编译包。
强制Docker平台配置
构建和运行容器时明确指定linux/amd64平台,避免Docker自动切换架构:
构建镜像:docker build --platform linux/amd64 -t your-image .运行容器:
docker run --platform linux/amd64 -it your-image bash升级Chalice版本
Chalice 1.29.0可能存在Apple Silicon+Rosetta环境的兼容性问题,升级到稳定新版本(如2.x系列)可修复此类bug:pip install --upgrade chalice重置Rosetta环境
确认Rosetta未损坏,重新安装并重启Docker:softwareupdate --install-rosetta --agree-to-license重启Docker Desktop后再执行部署操作。
更换基础镜像
替换python:3.10-slim为ubuntu基础镜像,slim版本可能缺少部分系统库导致指令执行异常:
修改Dockerfile:FROM --platform=linux/amd64 python:3.10-ubuntu重新构建镜像并安装依赖后测试。
内容的提问来源于stack exchange,提问作者Lam Nguyen Liam
相关产品推荐
相关产品推荐

