]([]  { steps { echo 'Hello world!' } } } }
输出示例:
$ ./app/target/appassembler/bin/jenkinsfile-runner -w /tmp/jenkins -p /tmp/jenkins_home/plugins -f ~/foo/ -a "param1=Hello¶m2=value2" Started Resume disabled by user, switching to high-performance, low-durability mode. [Pipeline] node [Pipeline] { [Pipeline] // stage [Pipeline] stage [Pipeline] { (打印问候) [Pipeline] echo Hello world! [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline Finished: SUCCESS
退出码反映构建结果。demo 目录包含多个简单 Jenkinsfile 示例。
CLI 由 picocli 和 args4j 提供支持,命令格式:
bashjenkinsfile-runner <命令>
支持的命令:
run - 运行 Jenkinsfile,未指定子命令时默认执行。lint - 校验 Jenkinsfile(仅支持声明式流水线)。cli - 启动交互式 Jenkins CLI,可执行 list-plugins、groovy 等标准命令。generate-completion - 生成 bash/zsh 补全脚本。version - 显示版本信息。help - 显示命令帮助。各命令参数可通过帮助方法查看。
run 等命令需启动 Jenkins 控制器实例,通用参数:
-w (--jenkins-war) FILE - Jenkins WAR 解压目录路径,可能包含完整 WAR 文件或资源(如 Groovy 钩子、额外库)。-jv (--jenkins-version) VAL - 未指定 WAR 时使用的 Jenkins 版本,默认最新 LTS。-p (--plugins) FILE - 运行所需插件,指向 plugins.txt 或插件安装目录,默认 plugins.txt。高级参数:
--jenkinsHome FILE - 本次运行使用的空 Jenkins 主目录路径,未指定则创建临时目录,运行后不自动清理。--mirror - 指定 plugins.txt 时下载插件的镜像站点(未来将整合插件安装管理工具)。--withInitHooks FILE - Groovy 初始化钩子 目录路径,也可通过 --jenkins-war 指定的 WAR 资源加载器中 WEB-INF/groovy.init.d/** 目录传递。--skipShutdown - 跳过 Jenkins 关闭逻辑以提升性能,可能导致资源未释放或数据丢失,基础包默认插件集下使用视为安全。--httpPort - 暴露 Web 服务器及 Jenkins Web UI 的端口,默认禁用。--agentPort - 入站 Jenkins 代理(JNLP 或 WebSocket)连接端口,默认禁用。run 命令)主命令,支持所有类型流水线定义,用法:
bashjenkinsfile-runner run -w [war路径] -p [插件目录路径] -f [Jenkinsfile路径] [其他选项]
除实例参数外,支持:
-f (--file) FILE - Jenkinsfile 路径(或含 Jenkinsfile 的目录),默认 ./Jenkinsfile。-a (--arg) - 传递给流水线的参数,多参数需多个 -a,均视为字符串类型。高级选项:
--runWorkspace FILE - node{} 上下文中使用的工作区路径,适用于控制器及代理。-u (--keep-undefined-parameters) - 保留未定义参数,默认 false。-ns (--no-sandbox) - 禁用沙箱环境及脚本安全检查,风险自负。-n (--job-name) VAL - 任务名称,默认 job。-b (--build-number) N - 构建编号,默认 1。-c (--cause) VAL - 构建原因描述,将附加到构建日志并供插件和流水线步骤使用。--scm FILE - 定义 SCM 及凭据的 YAML 文件,声明式流水线自动检出,脚本式流水线需 checkout scm,暂不支持 YAML 格式流水线,详见 文档。通过 -a 或 --arg 传递 parameters 语句中定义的参数,格式 key=value:
bash$ ./app/target/appassembler/bin/jenkinsfile-runner \ -w /tmp/jenkins \ -p /tmp/jenkins_home/plugins \ -f ~/foo/ \ -a "param1=Hello" \ -a "param2=value2"
容器化流水线执行是核心场景,项目提供*** Docker 镜像,支持自定义扩展。
包含运行流水线的最小插件集,需扩展以运行实际流水线,镜像位于 DockerHub jenkins/jenkinsfile-runner。
Jenkinsfile Runner Image Packs 提供常见场景镜像(如 Maven/Gradle 构建 Java 项目),包含插件、配置及流水线库,位于实验性 DockerHub 仓库 jenkins4eval/jenkinsfile-runner。
基础运行命令:
bashdocker run --rm -v $(pwd)/Jenkinsfile:/workspace/Jenkinsfile jenkins/jenkinsfile-runner
高级选项:
bash
docker run --rm -e JAVA_OPTS="-Xms256m" -v $PWD/test:/workspace jenkins/jenkinsfile-runner
* **工作目录**:Vanilla 镜像默认映射 `/build` 为工作区,可通过 `-v` 暴露为卷,结合 `--runWorkspace` 覆盖路径。 * **Jenkins 主目录持久化**:默认临时创建并清理,通过 `--runHome` 及 `-v` 指定本地目录保留构建元数据: ```bash docker run -v /local/Jenkinsfile:/workspace/Jenkinsfile -v /local/jenkinsHome:/jenkinsHome jenkins/jenkinsfile-runner --runHome /jenkinsHome
构建元数据(如 build.xml、日志)位于 <jenkinsHome>/jobs/job/builds/1。
非沙箱模式:通过 -ns 禁用沙箱,存在安全风险,需谨慎使用。
交互式 CLI:传递 --cli 及 -i -e FORCE_JENKINS_CLI=true 获取交互式会话:
bash
docker run --rm -i -e FORCE_JENKINS_CLI=true -v $(pwd)/Jenkinsfile:/workspace/Jenkinsfile jenkins/jenkinsfile-runner --cli
* **自定义配置**:覆盖入口点进入容器,二进制路径 `/app/bin/jenkinsfile-runner`: ```bash docker run --rm -it -v $PWD/test:/workspace --entrypoint bash jenkinsfile-runner:my-production-jenkins root@dec4c0f***:/src# /app/bin/jenkinsfile-runner -w /tmp/jenkins -p /usr/share/jenkins/ref/plugins -f /workspace
扩展方式有二:
--plugins 命令管理插件。缺陷及改进建议通过 GitHub Issues 提交。安全问题按 漏洞报告指南 处理。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429