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 &。