CentOS 上加速 Golang 打包的实用方案
一 基础与并行构建
go build -p $(nproc)export GOGC=20(默认 100,更低的值会更频繁回收,减少内存占用从而加速构建,视项目内存而定)export GOMAXPROCS=$(nproc)二 依赖与缓存优化
go clean -cache;仅在缓存异常或产物异常时清理。sccache 或 distcc,在单机多核与多机协作场景下可显著缩短重复构建时间。go mod tidy 清理;依赖越少,解析与编译越快。三 交叉编译与 CGO 策略
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o app main.goCGO_ENABLED=1 CC=...;这会显著增加复杂度与构建时长。四 容器与镜像构建优化
FROM golang:1.23-alpine AS build
WORKDIR /src
RUN go mod download
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o /bin/app ./cmd/app
FROM alpine:latest
COPY --from=build /bin/app /app/app
CMD ["/app/app"]
go mod download 与编译。五 系统与硬件层面优化