参数格式
| 核心作用
| 取值说明 / 可选值
|
--non-interactive
| 非交互式注册
| 无取值(开关参数),执行命令时无需手动输入任何内容,所有配置由命令行参数指定
|
--url "http://127.0.0.1:8929/"
| 指定 GitLab 实例的地址
| 取值:GitLab 服务器的访问 URL(HTTP/HTTPS 均可)
|
--registration-token "xxxxxx-xxxx"
| 用于 Runner 与 GitLab 服务器认证的令牌
| 取值:从 GitLab 项目 / 组 / 实例的 “设置→CI/CD→Runner” 中获取的注册令牌
注意:新版 GitLab 也可用--token替代该参数,效果一致
|
--tag-list "xxxx"
| 给 Runner 打标签,用于 CI Job 指定 Runner 执行
| 取值:多个标签用逗号分隔(如"my-demo-runner"),无标签可留空;
作用:只有 CI Job 指定对应标签时,该 Runner 才会承接任务
|
--run-untagged="true"
| 控制 Runner 是否承接 “未打标签” 的 CI Job
| 可选值:
• true(承接)
• false(仅承接带匹配标签的 Job)
默认:false
|
--locked="false"
| 控制 Runner 是否被锁定(仅归属指定项目)
| 可选值:
• true(锁定,仅绑定的项目可用)
• false(不锁定,可被其他项目使用)
默认:true
|
--access-level="not_protected"
| 定义 Runner 可执行的 Job 的保护级别
| 可选值:
• not_protected(可执行非保护分支 / 标签的 Job)
• ref_protected(仅执行保护分支 / 标签的 Job)
默认:not_protected
|
--executor "docker"
| 指定 Runner 的执行器类型
| 可选值:docker、shell、kubernetes、virtualbox等核心;
选docker表示用 Docker 容器运行 CI Job
|
--docker-image "docker:latest"
| 指定 Docker Executor 默认使用的基础镜像(内置完整的 Docker CLI)
| 取值:任意有效的 Docker 镜像名(如alpine:latest、ubuntu:22.04、docker:27.0-alpine);
作用:CI Job 未指定image时,默认使用该镜像
|
--docker-volumes "/var/run/docker.sock:/var/run/docker.sock"
| 给Docker Executor的Job容器挂载卷
| 取值:宿主机路径,容器内路径(格式与docker run -v一致)多个卷用逗号分隔(如"/var/run/docker.sock:/var/run/docker.sock","/cache:/cache")
核心:挂载docker.sock让 Job 容器能执行 Docker 命令
|
方式二、GitLab Runner 15.6版本及之后:关键字
| 作用说明
| 示例用法
|
variables
| 定义全局变量,所有阶段可复用,集中管理配置(如镜像名、端口、仓库地址)
| MAVEN_IMAGE: "maven:3.6-openjdk-8"
|
stages
| 定义构建阶段,按顺序执行,相同阶段的任务并行执行
| stages: - test-build - test-image - test-deploy
|
stage
| 绑定任务到指定阶段(必须在stages中定义)
| stage: test-build
|
image
| 指定执行该任务的 Docker 镜像(如 Maven、Docker 镜像)
| image: $DOCKER_IMAGE
|
script
| 任务的核心执行命令(如打包、构建镜像、部署命令)
| mvn clean package -DskipTests
|
only
| 限定任务触发条件(如分支、Tag)
| only: - test 或 only: refs: - tags
|
except
| 排除任务触发条件(与only相反)
| except: - branches
|
tags
| 匹配 GitLab Runner 的标签(仅带有该标签的 Runner 会执行任务)
| tags: - docker
|
dependencies
| 定义任务依赖(依赖的任务执行完成后,当前任务才会执行)
| dependencies: - test-build-all
|
cache
| 缓存依赖(如 Maven 依赖),加速后续构建(当前简化未用,可选添加)
| cache: paths: - /root/.m2/repository/
|
参数
| 作用说明
| 必要性
|
-p 8930:8080
| 宿主机 8930 端口映射到容器内 8080 端口
(Jenkins Web 访问端口)
| 必选
|
-p 50000:50000
| 宿主机 50000 端口映射到容器内 50000 端口
(Jenkins 代理 / 节点通信端口)
| 可选
|
-v /data/jenkins-data:/var/jenkins_home
| 将宿主机/data/jenkins-data目录挂载到容器内/var/jenkins_home
(Jenkins 核心数据目录)
| 必选
|
-v /data/module-data:/data/module-data
| 将宿主机部署目录挂载到容器内同路径,供 Jenkins 进行部署
| 可选
|
-v /opt/install/jdk:/opt/install/jdk
| 将宿主机 JDK 目录挂载到容器内同路径,供 Jenkins 调用 JDK 环境
| 可选
|
-v /opt/install/maven:/opt/install/maven
| 将宿主机 Maven 目录挂载到容器内同路径,供 Jenkins 调用 Maven 环境
| 可选
|
-u root
| 以 root 用户身份运行 Jenkins 容器
| 必选
|
jenkins/jenkins:lts
| 指定启动容器使用的镜像(Jenkins 长期支持版,稳定)
| 必选
|