gitlab-runner使用docker执行器
时间: 2025-01-13 10:25:33 浏览: 78
### 配置 GitLab Runner 使用 Docker 执行器
#### 修改Runner详细配置
为了使 GitLab Runner 能够使用 Docker 执行器,在 `/etc/gitlab-runner/config.toml` 文件中,需针对 `[runners.docker]` 进行设置。此部分允许指定用于构建作业的 Docker 映像以及其它参数,例如 `sysctls` 的调整[^1]。
```toml
[[runners]]
name = "docker-runner"
url = "https://gitlab.example.com/"
token = "your_runner_token_here"
executor = "docker"
[runners.docker]
tls_verify = false
image = "alpine:latest"
privileged = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
sysctls = ["net.core.somaxconn=1024", "vm.max_map_count=262144"] # 设置内核参数
```
上述配置文件中的 `image` 字段定义了默认使用的 Docker 基础镜像;而 `volumes` 则指定了挂载到容器内的卷路径。对于某些特定需求的应用程序来说,可能还需要额外设定诸如内存共享区大小 (`shm_size`) 或者特权模式 (`privileged`) 等选项来满足其运行条件。
#### 注册Runner并进入容器创建Runner
当首次注册一个新的 runner 并打算采用 docker 作为执行器时,可以通过命令行工具完成这一过程:
```bash
sudo gitlab-runner register \
--non-interactive \
--url https://gitlab.example.com/ \
--registration-token your_registration_token_here \
--executor docker \
--description "My Docker Runner" \
--docker-image alpine:latest
```
这条指令会引导系统自动向 GitLab 实例报告新加入的 runner,并将其绑定至指定 URL 和令牌下工作。同时通过传递给 `--executor` 参数值为 `docker` 来表明希望该 runner 可以利用本地已有的 Docker 环境来进行 CI 流水线任务处理[^4]。
#### 创建Jenkinsfile简单示例
虽然提到的是 Jenkinsfile ,但在 GitLab 中同样适用类似的 `.gitlab-ci.yml` 文件来描述持续集成流程。下面是一个简单的 Spring Boot 应用程序对应的 CI 配置例子:
```yaml
stages:
- build
- test
- deploy
variables:
DOCKER_DRIVER: overlay2
build_app:
stage: build
script:
- echo Building the application...
- mvn clean package -DskipTests=true
artifacts:
paths:
- target/*.jar
test_app:
stage: test
script:
- echo Running tests...
- mvn test
deploy_app:
stage: deploy
script:
- echo Deploying to production environment...
```
这段 YAML 格式的文档定义了一个三阶段的工作流——编译、测试和部署。它假设项目根目录存在 Maven 构建脚本(`pom.xml`),并且能够顺利打包成 JAR 文件供后续操作使用[^3]。
阅读全文
相关推荐


















