在CentOS上使用Golang打包應用程序時,有幾個重要的注意事項需要考慮:
安裝Go環境:
sudo yum install golang
或者從Go官方網站下載適用于Linux的安裝包進行安裝。配置環境變量:
/etc/profile
或 ~/.bashrc
文件,添加以下內容:export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
然后運行 source /etc/profile
或 source ~/.bashrc
使變量生效。編寫Go代碼:
交叉編譯:
GOOS=linux GOARCH=amd64 go build -o outputName
其中,GOOS
設置為目標操作系統,GOARCH
設置為目標硬件架構。靜態編譯:
CGO_ENABLED=0 go build -a -installsuffix cgo -ldflags '-s -w'
其中,CGO_ENABLED=0
禁用了CGO,-a
重新編譯所有依賴的包,-installsuffix cgo
將編譯后的庫文件放到單獨一個文件夾中,-ldflags '-s -w'
移除調試信息。環境變量配置:
GOROOT
和 GOPATH
環境變量,并將其添加到 PATH
環境變量中。這些步驟通常在安裝Go時完成,但需要確保這些變量在打包和部署時仍然有效。使用Docker進行打包:
FROM golang:alpine as build
WORKDIR /app
COPY . .
RUN go build -o app
FROM alpine
COPY --from=build /app/app /app
EXPOSE 3000
CMD ["/app/app"]
然后使用 docker build
和 docker run
命令進行打包和部署。文件權限:
chmod +x main
如果希望程序在后臺運行,可以使用 nohup
命令:nohup ./main &
依賴管理:
go mod init example.com/mymodule
然后在 go.mod
文件中添加依賴。創建RPM包(可選):
rpmbuild
工具。首先,你需要創建一個SPEC文件,該文件描述了如何構建RPM包。然后,使用 rpmbuild
命令來構建你的RPM包。sudo yum install rpm-build
mkdir -p /rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
cp myapp /rpmbuild/SOURCES/
create_rpm_spec_file myapp.spec
rpmbuild -ba /rpmbuild/SPECS/myapp.spec