最近在研究使用Jenkins 自动化部署Go项目,在使用Docker安装好Jenkins后,运行Go环境一直报错,报错信息如下:
Failed to install https://golang.org/dl/go1.19.linux-amd64.tar.gz to /var/jenkins_home/tools/org.jenkinsci.plugins.golang.GolangInstallation/Go_1.19 java.net.SocketTimeoutException: connect timed out
折腾许久终于把问题解决,现将问题处理方法记录一下,以备后来躺坑者借鉴。我这里Jenkins版本为2.389,Go版本为1.19。
connect timed out 说明使用Jenkins官方源下载安装插件很不稳定,我们先替换为国内镜像源。
常用的几个Jenkins国内镜像源:
1、https://mirrors.cloud.tencent.com/jenkins/updates/update-center.json (腾讯)
2、https://mirrors.huaweicloud.com/jenkins/updates/update-center.json (华为)
3、https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json (清华)
4、https://mirrors.aliyun.com/jenkins/updates/update-center.json(阿里)
替换Jenkins 插件升级配置站点为上面任意一个即可。
替换好后重启Jenkins (docker restart jenkins) ,这样就好了? 我想多了,你也想多了。后面报错依旧。
继续.....
使用国内社区的Go安装包 https://studygolang.com/dl/golang/go1.19.linux-amd64.tar.gz,手动下载到报错信息指定的目录,解压文件(tar -zxvf go1.19.linux-amd64.tar.gz),并修改Go安装方式,配置如下:
按照这样配置好后应该可以了吧? 执行脚本验证一下。
#!/bin/bash
echo "GOROOT: ${GOROOT}"
echo "PATH: ${PATH}"
echo "GOPATH: ${GOPATH}"
go version
go env
并没有。报错如下:
以上报错说明源问题已经解决了,环境变量还有问题,打开我的火眼金睛一通查找,果然环境路径配置有问题。
上面PATH指向路径为:
/var/jenkins_home/tools/org.jenkinsci.plugins.golang.GolangInstallation/Go_1.19/bin
安装包解压后实际目录为:
/var/jenkins_home/tools/org.jenkinsci.plugins.golang.GolangInstallation/Go_1.19/go/bin
将安装资源移出go目录匹配为PATH指向路径,操作指令:
mv /var/jenkins_home/tools/org.jenkinsci.plugins.golang.GolangInstallation/Go_1.19/go/* /var/jenkins_home/tools/org.jenkinsci.plugins.golang.GolangInstallation/Go_1.19/
重启Jenkins,问题解决,长舒一口气。
30 多个构建失败记录见证了我的不易,新手上路,刚开启Go躺坑之路,不喜勿喷。
参考资料:
运维 - jenkins 手动安装Go 构建环境 - 个人文章 - SegmentFault 思否
使用Docker+Jenkins实现Go语言项目的持续集成 - 掘金