在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
。