在CentOS中使用Golang进行项目打包时,可以遵循以下最佳实践:
sudo tar -C /usr/local -xzf go1.17.6.linux-amd64.tar.gz
~/.bashrc
或~/.bash_profile
文件,添加以下内容:export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
然后运行:source ~/.bashrc
使环境变量生效。GOOS=linux GOARCH=amd64 go build -o myapp main.go
-ldflags
参数去除符号表和调试信息,以减小可执行文件的大小并提高安全性:CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -ldflags "-s -w" -o myapp main.go
FROM golang:1.23 AS build
WORKDIR /src
RUN go mod download
GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o /bin/mck ./main.go
FROM alpine:latest
COPY --from=build /bin/mck /app/mck
CMD ["./mck"]
go mod init example.com/myapp
自动识别并下载项目依赖,生成go.mod
文件。scp myapp user@your_server:/path/to/destination
ssh user@your_server
chmod +x /path/to/destination/myapp
./myapp
go clean -cache
命令清理构建缓存,以减少构建时间。-p
参数并行构建多个包,例如:go build -p 4
upx --best --lzma your_app_name
通过遵循这些最佳实践,你可以在CentOS上高效地打包Golang项目,确保最终生成的可执行文件性能优越且部署便捷。