在Linux或者Window等AMD64架构的机器上(AWS EC2、ECS, 阿里云函数计算等)使用苹果M1芯片上的构建的Docker镜像(或者其他ARM64架构的机器构建的镜像)会带来一些问题。因此为了在上述平台部署苹果芯片构建的镜像我们需要指定构建AMD64架构的镜像。
有几种方法可以实现:
在你的环境中指定 DOCKER_DEFAULT_PLATFORM
参数
你可以直接在构建之前运行 export DOCKER_DEFAULT_PLATFORM=linux/amd64
,或者把这句话放到你的.bashrc
、.zshenv
或者.zshrc
等文件中,这样可以避免每次都去设置
在 Dockerfile
的From中指定平台
比如
FROM --platform=linux/amd64 python:3.7-alpine
如果使用 docker-compose
构建,可以指定 paltform: linux/amd64
services:
servername:
platform: linux/amd64
......
参考来源: https://stackoverflow.com/questions/65612411/forcing-docker-to-use-linux-amd64-platform-by-default-on-macos