我们编写一个简单的 Makefile
,里面指定了编译不同平台和架构使用的命令。考虑到我们的 Docker 镜像只需要 linux/amd64
和 linux/arm64
两个平台,所以我们只需要编写下面的两行命令。 当然,如果你需要一个可以本地使用,能直接编译所有平台的二进制可执行文件的 makefile ,可以参考仓库中的 Makefile
文件。
all: build-linux-amd64 build-linux-arm64
build-linux-amd64:
mkdir -p build
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o build/hello_linux_amd64 main.go
build-linux-arm64:
mkdir -p build
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o build/hello_linux_arm64 main.go
需要注意的是,第一条规则 all
为默认的规则,执行 make
时就执行它指定的目标。mkdir -p build
保证了输出目录一定存在。
如果你使用 macOS 或者 Linux 系统,可以试着运行 make
命令,它会在当前目录下创建一个 build
文件夹,并将生成的二进制可执行文件都放在里面。