CentOS下Golang打包常見問題及解答
go build時提示“command not found: go”,或編譯時報錯依賴路徑問題。sudo rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO,curl -s https://mirror.go-repo.io/centos/go-repo.repo | sudo tee /etc/yum.repos.d/go-repo.repo),再執行sudo yum install golang;或手動下載Go安裝包(如go1.21.linux-amd64.tar.gz),解壓至/usr/local,并配置環境變量(GOROOT=/usr/local/go、GOPATH=$HOME/go、PATH=$PATH:$GOROOT/bin:$GOPATH/bin)。go version,顯示版本信息則說明安裝成功。go mod init <module-name>(如go mod init github.com/user/project),生成go.mod文件。go mod tidy,自動下載缺失的依賴并移除未使用的依賴。go env -w GOPROXY=https://goproxy.cn,direct)。FROM centos:6
RUN yum install -y gcc make
WORKDIR /app
COPY . .
RUN go build -o myapp .
GOOS=linux GOARCH=amd64 go build -o myapp。chmod +x myapp,再執行./myapp。libcurl-devel時,執行sudo yum install libcurl-devel;缺少openssl-devel時,執行sudo yum install openssl-devel。gcc),可通過sudo yum install gcc安裝。go build時提示“GOPATH not set”或“GOROOT not set”,或依賴下載到錯誤目錄。~/.bashrc或/etc/profile中添加:export GOROOT=/usr/local/go # Go安裝目錄
export GOPATH=$HOME/go # 工作目錄
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin # 添加Go命令到PATH
export GO111MODULE=on # 啟用Go Modules(Go 1.11+)
source ~/.bashrc或source /etc/profile。chmod +x myapp。nohup:nohup ./myapp > output.log 2>&1 &。