Jenkins流水线配置遇到 无法识别的。需要使用 自定义环境 项。
比如官网的在流水线中使用Docker
Started by remote host 172.17.0.1
Obtained Jenkinsfile from git http://10.99.20.51:8082/root/java-devops-demo.git
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 28: Invalid agent type “docker” specified. Must be one of [any, label, none] @ line 28, column 17.
docker { image ‘maven:3-alpine’ }
原因:docker-pipeline 插件没有安装,只用安装这一个就行
docker-commons docker-java-api docker-build-step docker-workflow dockerpipline
挨个安装
在清华大学源中 找jenkins 插件源
jenkins插件源
将Jenkins插件站点更换成清华源的
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
jenkins推荐插件
docker pipeline #可以自定义使用docker环境,无所不能
docker
git parameter #解析git参数,允许选择分支进行构建
active choices 可以做到参数的级联选择(多用于不同区域联动)
generic webhook trigger #通用webhook触发器
role-based authrization strategy RBAC权限指定
list git branches parameter 列出分支参数
build with parameter #自定义参数构建
gitlab webhook自动更新发包提示异常
问题排查:
通过日志发现并没有请求过来,判定可能是权限问题,但不知道为什么是报404而不是报30X权限相关错误,抱着测试的态度尝试居然问题解决了。
解决方法:
获取用户API Token,在webhook中附带用户名和token,格式如下:其中id和token可以在jenkins用户设置页面查看和生成。
http://id:token@jenkins_url/job/myJobName/build?token=my_job_token
http://java2:11b6963f689849bd229be6dd94d27bfc05@10.99.20.51:8080/job/java-devops-demo/build?token=javaops