以下是在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"]
```。
代码规范
参考来源: