以下是在CentOS中进行Golang打包的最佳实践:
环境配置
yum安装Go或手动解压配置环境变量,确保GOROOT、GOPATH和PATH正确设置。go env -w GOPROXY=https://goproxy.cn,direct。依赖管理
go mod init初始化项目,使用go get添加依赖,确保依赖版本可重复。高效编译
GOOS和GOARCH环境变量生成不同平台可执行文件,如GOOS=linux GOARCH=amd64 go build -o app。-ldflags="-s -w"去除调试信息,或-ldflags="-extldflags '-static'"实现完全静态链接(需注意动态库依赖)。-p参数并行编译多个包,提升速度。优化与安全
go clean -cache减少构建时间。garble混淆代码,或upx压缩二进制文件减小体积。部署与自动化
FROM golang:1.23-alpine AS build WORKDIR /app COPY . . RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o app FROM alpine:latest COPY --from=build /app/app / CMD ["./app"] ```。 代码规范
参考来源: