Jenkins构建过程中常见问题排查与解决

排查思路

查看Jenkins流水线Console Output,分析输出内容,根据报错信息排查。

常见问题

1、报错提示SERVER: Agent version 4.13 or newer is required

原因:jenkins agent版本过低

解决方法:构建slave镜像时使用对应版本的slave镜像。

Jenkins 版本2.277及以后的版本,推荐使用 jenkins/inbound-agent 镜像;jenkins/inbound-agent 镜像,它包含了 Jenkins Remoting,并且是 jenkins/jnlp-slave 的继任者。

注意点

多次构建slave镜像时使用不同版本号,避免本地镜像和harbor仓库镜像冲突,导致流水线失败。

例如,本地jenkins-slave-maven:v1镜像使用jenkins/jnlp-slave:latest镜像构建,并且推送到了harbor仓库,在运行流水线时,发现agent版本过低,这时slave运行在node01上,node01下载了harbor仓库的jenkins-slave-maven:v1镜像;随后使用jenkins/inbound-agent:3107.v665000b_51092-15镜像进行构建,镜像tag还是jenkins-slave-maven:v1,这时node01上的镜像就和harbor仓库中的镜像产生冲突,若再次运行流水线且slave还是运行在node01上,这时会发现流水线构建失败,提示agent版本过低。

2、报错提示ERROR: Unable to pull Docker image "harbor.xxx.cn/library/jenkins-slave-maven:v1". Check if image tag name is spelled correctly

排查步骤

  • 1、确认harbor仓库中是否存在版本为v1的jenkins-slave-maven镜像;
  • 2、确认是否存在x509报错(每个节点);
  • 3、如果使用containerd为容器运行时,使用crictl pull确认是否可以正常下载(代理也会影响,出现TLS handshake timeout时不要配置https;本地仓库环境下可以配置no_proxy)。

x509报错解决方法

每个节点执行

1
$ echo -n | openssl s_client -showcerts -connect harbor.yuankeedu.com:443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >> /etc/ssl/certs/ca-bundle.trust.crt

3、报错提示ERROR: Couldn't find any revision to build. Verify the repository and branch configuration fo this job.

排查思路

报错提示未能找到要构建的任何修订版。请检查此任务的存储库和分支配置。

此时应检查Gitlab仓库分支以及相关脚本配置。

解决步骤

  • 1、检查Gitlab仓库,发现仓库默认分支设置为master,没有其他分支。

  • 2、检查脚本配置,发现分支设置为main。

1
checkout([$class: 'GitSCM', branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_address}"]]])
  • 3、发现问题根源:脚本配置中的仓库分支与Gitlab仓库分支不符,且Gitlab仓库不存在main分支。

  • 4、修改脚本配置中的分支设置为master。

4、报错提示Build step 'Invoke top-level Maven targets' marked build as failure

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project businessServer: Compilation failure: Compilation failure:

原因:项目构建时jdk环境不匹配,原本需要jdk8来构建的项目配置成jdk11就会导致构建失败

解决方法

  • 1、如果是动态slave模式,使用对应jdk版本重新构建slave镜像;
  • 2、如果是静态slave,在系统全局工具配置页面新增对应jdk版本,并在构建项目中选择对应jdk版本。


Jenkins构建过程中常见问题排查与解决
https://www.zhoumx.net/Jenkins构建过程中常见问题排查与解决.html
作者
阿星
发布于
2023年12月18日
许可协议