以下是在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
實現后臺運行。關鍵參考: