本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
]([]  { 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 提供支持,命令格式:
jenkinsfile-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 命令)主命令,支持所有类型流水线定义,用法:
jenkinsfile-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:
$ ./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。
基础运行命令:
docker run --rm -v $(pwd)/Jenkinsfile:/workspace/Jenkinsfile jenkins/jenkinsfile-runner
高级选项:
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 获取交互式会话:
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@dec4c0f12478:/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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429