记录一下在M1上跨平台编译的解决方案

自从用了M1以后,工作体验是改善了不少,但是服务器使用的程序还是x86指令集的,搞个x86的机器编译或者用虚拟机都感觉不大方便。所以就有了这个想法,启动一个x86_64的docker容器来编译。

快速启动一个x86_64容器

这边主要是为了阻止Docker生成或者拉取arm64架构的容器,如果要编译其他平台的容器自行搜索 doucker buildx 的使用方法

# build
docker build --platform linux/x86_64 .
# run
docker run --platform  -t -i linux/amd64 IMAGE bash
# 最终效果
[email protected]:/# uname -a
Linux 472ffe071aeb 5.10.25-linuxkit #1 SMP PREEMPT Tue Mar 23 09:24:45 UTC 2021 x86_64 GNU/Linux

其中,-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。

目前使用正常

打包跨平台使用的Docker镜像

使用Docker buildx 工具

点赞