在CentOS上打包Golang程序需注意以下事项:
环境配置
export GOROOT=/usr/local/go
、export GOPATH=$HOME/go
、export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
配置环境变量,并执行source /etc/profile
使其生效。go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
。依赖管理
go mod init <模块名>
,并通过go mod tidy
自动管理依赖。交叉编译
GOOS
和GOARCH
指定目标平台,例如为Linux 64位编译:GOOS=linux GOARCH=amd64 go build -o app
。CGO_ENABLED=0
:CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app
。优化打包
-ldflags "-s -w"
去除调试信息,减小二进制文件体积。go-bindata
等工具将静态文件(如配置、模板)打包进二进制。部署与权限
chmod +x app
。FROM golang:alpine
WORKDIR /app
COPY . .
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o app
CMD ["./app"]
其他注意事项
CGO_ENABLED=1
。