dou*_*lea 2 deployment 64-bit docker arm64 aws-cdk
已解决
按照下面 zessx 的评论,我最终通过添加export DOCKER_DEFAULT_PLATFORM="linux/amd64"
到我的 zsh 配置文件中解决了问题。
cdk deploy
我最近收到了一台用于工作的 MacBook Pro M2,但在使用时遇到了问题。有一个 numpy 导入问题特别与其“C 扩展”相关。
原始错误是:没有名为“numpy.core._multiarray_umath”的模块。
我看到一旦 cdk 部署开始,Docker Desktop 的第一层就是“ARCHITECTURE arm64”。我猜这至少是构建在实际尝试在 x64 AWS 架构上运行时遇到问题的部分原因。我是否无法在本地进行这样的构建?
谢谢!
我尝试了几个不同版本的 numpy 来导入
从同事的 x64 笔记本电脑部署相同的代码并运行。
Docker 将尝试使用适合您本地架构的镜像。新的 Apple M1/M2 使用 ARM64 架构,因此 Docker 将默认搜索 ARM64 镜像。
\n就您而言,运行时cdk deploy
您可能正在后端构建图像。该映像将使用 ARM64 架构构建,但预计将在 AMD64 架构上运行。
您可以通过多种方法来确保为正确的拱门构建图像。
\n--platform
在 Docker 命令中使用该标志docker build -t $IMAGE --platform linux/amd64 .\ndocker push ${AWS_ACCOUNT}.dkr.ecr.${AWS_REGION}.amazonaws.com/${IMAGE}\n
Run Code Online (Sandbox Code Playgroud)\n--platform
在 Dockerfile 中使用该标志FROM ruby:latest as development\nRUN \xe2\x80\xa6\n\nFROM --platform=linux/amd64 ruby:latest as production\nRUN \xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n然后,您可以在 Docker 命令中指定要构建的目标:
\nFROM ruby:latest as development\nRUN \xe2\x80\xa6\n\nFROM --platform=linux/amd64 ruby:latest as production\nRUN \xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\nDOCKER_DEFAULT_PLATFORM
环境变量docker build -t $IMAGE --target production .\n
Run Code Online (Sandbox Code Playgroud)\n.bashrc
您还可以在/中添加此行.zshrc
,但请记住,您将始终使用 AMD64 模拟,即使对于本地项目(其中可以使用本机 ARM64 映像)也是如此。我不会推荐这个。
归档时间: |
|
查看次数: |
2935 次 |
最近记录: |