升级到当前最新版Gitlab之后
在“管理中心”的“CI/CD”--“Runners”下,提示以前的那种注册令牌的方式已经过时了。
点击右上角按钮后,弹出对话框如下:
上图画红框的信息,deprecated是“不赞成,反对”的意思。就是说注册令牌已经被放弃了,未来将会不支持。暂时还是可以用。
点击蓝色按钮:New Instance Runner
上图我们就在“Run untagged jobs”打勾,然后点击“Create Runner”蓝色按钮。
到了下一步:
上图明确列出了gitlab-runner注册的命令。和以前的15.6.1的版本并没有什么太大不同。
在容器中执行gitlab-runner register操作
由于我么的gitlab-runner是安装在容器里,我们得用docker exec进入每个容器执行register操作
下边的步骤还是和gitlab 16.6.1的版本几乎没有区别。
进入容器内部
root@dev-server:~# docker exec -it gitlab-runners_home_2 /bin/bash
root@dev-server:/mnt/disk5t/data/gitlab.amihome.cn/gitlab-runners# docker exec -it gitlab-runners_home_1
"docker exec" requires at least 2 arguments.
See 'docker exec --help'.
Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
Execute a command in a running container
root@dev-server:/mnt/disk5t/data/gitlab.amihome.cn/gitlab-runners# docker exec -it gitlab-runners_home_1 /bin/bash
root@6b9709615e72:/# gitlab-runner register --url https://gitlab.amihome.cn --token glrt-hY7-gcCwwsp4Rsa-8NbR
Runtime platform arch=amd64 os=linux pid=33 revision=656c1943 version=16.9.0
Running in system-mode.
Enter the GitLab instance URL (for example, https://gitlab.com/):
[https://gitlab.amihome.cn]:
Verifying runner... is valid runner=hY7-gcCww
Enter a name for the runner. This is stored only in the local config.toml file:
[6b9709615e72东方大力士甲
Enter an executor: custom, shell, ssh, virtualbox, docker+machine, parallels, docker, docker-windows, kubernetes, docker-autoscaler, instance:
docker
Enter the default Docker image (for example, ruby:2.7):
docker.amihome.cn/amihome/gitlab/docker-linux-dotnet8.0:latest
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
Configuration (with the authentication token) was saved in "/etc/gitlab-runner/config.toml"
初学者容易费解的是上一节最后一步的“Enter the default Docker image”
比如我的机器上,现在有两个容器在运行:
1、gitlab-runners_home_1
2、gitlab-runners_home_2
上述两个容器用于和Gitlab服务器保持“通信”,等着领取“作业”。
当领到“作业”以后,由于我们在“Enter an executor”这里输入的是“docker”,这个时候就会在物理机器上用docker run命令,启动一个容器,这个容器是临时的,执行完“作业”就会销毁。
“Enter the default Docker image”这里的url就是上述docker run时候要使用的image。
这个image就是得自己制作的。我们的项目当前使用.NET 8,想制作上一段提到的“docker.amihome.cn/amihome/gitlab/docker-linux-dotnet8.0:latest”,看这里: