Gitlab Runner 是Gitlab任务执行环境,用过jenkins的应该不会陌生,jenkins有master和slave,gitlab的runner就相当于jenkins的slave,
gitlab-runner在CI/CD中是非常重要的部分,构建,测试,部署等等任务都需要执行环境
1. 在docker里的安装
1.1. 运行gitlab-runner
和上一篇一样,我的环境是swarm集群的docker,由portainer管理,直接新建一个stack,添加如下配置即可
1
2
3
4
5
6
7
|
version: "3.6"
services:
gitlab-runner:
image: gitlab/gitlab-runner:alpine
deploy:
mode: replicated
replicas: 1
|
启动之后,日志里可以看到如下的错误信息
1
|
ERROR: Failed to load config stat /etc/gitlab-runner/config.toml: no such file or directory builds=0
|
没关系,容器已经启动,还剩下一步没有操作-注册,也就是向gitlab注册自己,实现双向通信.
1.2. 复制gitlab的注册信息 地址和token
在执行这一步之前,先到gitlab的配置/admin/runners查看token信息,打开页面后可以看到如下信息:
1
2
3
4
5
6
7
|
Set up a shared runner manually
Install GitLab Runner and ensure it's running.
Register the runner with this URL:
https://gitlab.example.com/
And this registration token:
412ye9b1fhge129gf70812gv4e8f12f7R
|
这两个信息在后来的操作里都要用到
1.3. 注册
执行
1
|
docker exec -it [runner的id] /bin/bash
|
或者在portainer里打开console,然后执行
接下来就会让你填写一系列的
- 地址
- token
- 描述
- 标签
- 执行环境(docker, docker-ssh, parallels, ssh, virtualbox, custom, docker+machine, docker-ssh+machine, kubernetes, shell)
- docker版本(如果执行环境是docker)
以下是演示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# 地址
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
your server ip
# token
Please enter the gitlab-ci token for this runner:
3eJLalsdhasjkdhvZG
# 描述
Please enter the gitlab-ci description for this runner:
demo runner
# 标签
Please enter the gitlab-ci tags for this runner (comma separated):
tag1, tag2
# 执行环境
Please enter the executor: docker, docker-ssh, parallels, ssh, virtualbox, custom, docker+machine, docker-ssh+machine, kubernetes, shell:
docker
# docker版本
Please enter the default Docker image (e.g. ruby:2.6):
alpine:latest
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
|
2. 参考