- 已解决**
按照下面zessx的评论,我最终通过将export DOCKER_DEFAULT_PLATFORM="linux/amd64"
添加到我的zsh配置文件中来解决这个问题。
我最近收到了MacBook Pro M2的工作和运行到问题时,我cdk deploy
从它.有一个 numpy 导入问题,特别是有关其"C扩展".
原始错误为:没有名为"numpy.core._multiarray_umath"的模块。
我看到cdk部署一开始,Docker Desktop就有了第一层"ARCHITECTURE arm64"。我猜这至少是构建在x64 AWS架构上运行时遇到问题的部分原因。我是不是不能在本地进行这样的构建?
谢谢!
我尝试了几个不同版本的numpy导入
从同事的x64笔记本电脑上部署相同代码并运行。
1条答案
按热度按时间hujrc8aj1#
Docker将尝试使用适合您本地架构的映像。新的Apple M1/M2使用ARM 64架构,因此默认情况下Docker将搜索ARM 64映像。
在您的例子中,当运行
cdk deploy
时,您可能在后端构建一个映像,该映像将使用ARM 64架构构建,但预计将在AMD 64架构上运行。你有几种方法来确保你正在为正确的拱门构建你的图像。
在Docker命令中使用
--platform
标志在停靠文件中使用
--platform
标志然后,您可以在Docker命令中指定要构建的目标:
使用
DOCKER_DEFAULT_PLATFORM
环境变量你也可以在你的
.bashrc
/.zshrc
中添加这一行,但是记住你会一直使用AMD 64仿真,即使是在你的本地项目中,那里有原生的ARM 64镜像。