centos

CentOS系统Golang打包的最佳实践

小樊
33
2025-09-04 00:50:48
栏目: 编程语言

以下是在CentOS系统上进行Golang打包的最佳实践:

  1. 环境配置

    • 安装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  
      
  2. 依赖管理

    • 使用go mod init初始化项目,go mod tidy自动管理依赖。
  3. 交叉编译

    • 通过GOOSGOARCH指定目标平台,例如:
      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  
      
  4. 优化构建

    • 并行编译:go build -p 4(根据CPU核心数调整)。
    • 使用缓存工具(如sccache)加速重复构建。
  5. 打包与部署

    • 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工具减小体积。
  6. 权限与运行

    • 上传至服务器后,设置执行权限:chmod +x myapp
    • 可通过nohupsystemd实现后台运行。

关键参考

0
看了该问题的人还看了