以下是在CentOS系统上进行Golang打包的最佳实践:
环境配置
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
go env -w GO111MODULE=on
依赖管理
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
)加速重复构建。打包与部署
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
工具减小体积。权限与运行
chmod +x myapp
。nohup
或systemd
实现后台运行。关键参考: