阅读量:3
以下是在CentOS系统上进行Golang打包的最佳实践:
-
环境配置
- 安装Go并配置环境变量:
export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin - 启用Go Modules(Go 1.11+):
go env -w GO111MODULE=on
- 安装Go并配置环境变量:
-
依赖管理
- 使用
go mod init初始化项目,go mod tidy自动管理依赖。
- 使用
-
交叉编译
- 通过
GOOS和GOARCH指定目标平台,例如:GOOS=linux GOARCH=amd64 go build -o myapp-linux-amd64 main.go - 静态编译(避免依赖问题):
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o myapp main.go
- 通过
-
优化构建
- 并行编译:
go build -p 4(根据CPU核心数调整)。 - 使用缓存工具(如
sccache)加速重复构建。
- 并行编译:
-
打包与部署
- Docker化:编写多阶段Dockerfile,减小镜像体积,例如:
FROM golang:alpine AS build WORKDIR /app COPY . . RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myapp . FROM alpine COPY --from=build /app/myapp /app CMD ["/app/myapp"] - 压缩二进制文件(可选):使用
upx工具减小体积。
- Docker化:编写多阶段Dockerfile,减小镜像体积,例如:
-
权限与运行
- 上传至服务器后,设置执行权限:
chmod +x myapp。 - 可通过
nohup或systemd实现后台运行。
- 上传至服务器后,设置执行权限:
关键参考:
以上就是关于“CentOS系统Golang打包的最佳实践”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm