以下是Golang打包CentOS项目的最佳实践:
go mod init <模块名> # 初始化
go mod tidy # 同步依赖
GOOS
和GOARCH
环境变量生成适配CentOS的二进制文件(如Linux 64位)。GOOS=linux GOARCH=amd64 go build -o app main.go
CGO_ENABLED=0
和-ldflags="-s -w"
参数,生成不依赖外部库的自包含二进制文件。CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o app main.go
FROM golang:alpine AS build
WORKDIR /app
COPY . .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app
FROM alpine
COPY --from=build /app/app /app
CMD ["/app/app"]
-p
参数并行构建(如go build -p 4
)。go clean -cache
)并启用缓存工具(如sccache)。chmod +x app
),可通过nohup
后台运行。参考来源: