在 Debian 上提升 Golang 打包效率的实用方案
一 构建链与环境优化
二 选择高效的打包路径
三 多架构与 CGO 场景提速
纯 Go 项目:无需 CGO 时,使用 CGO_ENABLED=0 进行静态编译,跨架构仅设置 GOOS/GOARCH 即可快速产出多平台二进制,构建最省时。
示例:GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -ldflags “-s -w” -o myapp
需要 CGO 的项目:
四 镜像与产物体积优化
五 一键化与可复用脚本示例
#!/usr/bin/env bash
set -eux
export GOMAXPROCS=$(nproc)
export GOPROXY=https://goproxy.cn,direct
go mod tidy
CGO_ENABLED=0 GOOS=linux GOARCH=$(go env GOARCH) \
go build -ldflags '-s -w' -o myapp .
sudo apt-get update
sudo apt-get install -y dh-golang golang-go
debuild -us -uc
docker buildx build \
--platform linux/amd64,linux/arm64 \
--build-arg GOOS=linux \
--build-arg GOARCH=arm64 \
--build-arg CC=aarch64-linux-gnu-gcc \
-t your-registry/your-app:multiarch \
-o type=registry .