问题信息
前一阵换了 M1芯片Macbook 后,前端开发环境都兼容,可以正常跑项目。但是就在本地打镜像时出现问题,使用 docker 打镜像后到环境上部署不成功,获取不到资源,返回 502 。一直以为是 Node 或 Docker 版本的问题,不兼容,各种替换后还是有问题。最终想到可能是 打完的镜像应该是arm64 的,但是服务器不是这个,导致错误❌,应该是需要打 x86 的镜像才可以。
启用buildx
插件
启用这个插件,需要版本号大于 19.03 ,使用下面的命令来开启
export DOCKER_CLI_EXPERIMENTAL=enabled
启用 binfmt_misc
使用的是 Docker桌面版 会默认开启
从默认的构建器切换到多平台构建器
Docker 默认会使用不支持多 CPU 架构的构建器,我们需要手动切换。
先创建一个新的构建器:
docker buildx create --use --name mybuilder
启动构建器:
docker buildx inspect mybuilder --bootstrap
等待启动结束即可。
修改打镜像的命令
docker buildx build --platform linux/amd64 --load -t example .
linux/amd64
表示x86的镜像
—load
表示记载到本地,或者用push推到仓库也可以
Loading Comments...