首先安装gitlab-runner
docker run -d --name gitlab-runner --restart always \
-v /home/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
打开gitlab,在这里找到url和token
然后进到容器中,接下来输入一系列信息
注意,在要求输入tag时,想好tag的名字,这个就相当于你的runner的id
docker exec -it gitlab-runner bash
gitlab-runner register
## 输入url
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://172.17.0.2:8090
#如果都用docker安装,可以使用docker内部的桥接网路 使用 docker network inspect bridge 命令查看
## 输入token
Please enter the gitlab-ci token for this runner
## 写个描述
Please enter the gitlab-ci description for this runner
## 这个tag很重要,好好想个名字并记住,随后在ci配置中需要对应上。
Please enter the gitlab-ci tags for this runner (comma separated)
## ci没有配置tags时是否执行这个runner?建议采用默认值。
Whether to run untagged builds [true/false]
## 是否只对当前工程有效?理论上讲只有“Shared runners”才有效。选true。
Whether to lock Runner to current project [true/false]
## 选择一个执行器。我们接来下的方案是基于shell的,输入shell。
Please enter the executor: virtualbox, docker+machine, kubernetes, parallels, docker-ssh, shell, ssh, docker-ssh+machine, docker:
#结束。在容器中执行gitlab-runner list 可以看到保存在配置文件中的所有运行程序
一些常用命令
gitlab-runner register #默认交互模式下使用,非交互模式添加 --non-interactive
gitlab-runner list #此命令列出了保存在配置文件中的所有运行程序
gitlab-runner verify #此命令检查注册的runner是否可以连接,但不验证GitLab服务是否正在使用runner。 --delete 删除
gitlab-runner unregister #该命令使用GitLab取消已注册的runner。
#使用令牌注销
gitlab-runner unregister --url http://gitlab.example.com/ --token t0k3n
#使用名称注销(同名删除第一个)
gitlab-runner unregister --name test-runner
#注销所有
gitlab-runner unregister --all-runners
接下来进入docker修改配置文件,增加 pull_policy = "if-not-present" pull政策:如果不存在
不然每次docker 去重新pull镜像,十分墨迹
在上边运行时我们修改了 -v /home/gitlab-runner/config:/etc/gitlab-runner
所以打开 /home/gitlab-runner/config/config.toml
[[runners]]
name = "desdocker"
url = "http://127.0.0.1:8090/"
id = 8
token = "HSDGNf9xQ5RdB5ayze5N"
token_obtained_at = 2023-03-17T13:57:54Z
token_expires_at = 0001-01-01T00:00:00Z
executor = "docker"
[runners.cache]
MaxUploadedArchiveSize = 0
[runners.docker]
tls_verify = false
image = "node"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
pull_policy = "if-not-present" # 增加这个
shm_size = 0
#如果都了解了,就可以用直接命令行生成了
gitlab-runner register \
--non-interactive \
--executor "docker" \
--docker-image alpine:latest \
--url"http://192.168.1.200:30088/" \
--registration-token "JRzzw2i1Ji6aBjwvkxAv"--description "docker-runner" \
--tag-list "docker" \
--run-untagged="true" \
--Tocked="false" \
--access-level="not_protected'