Gitlab 管道 运行 在 VM 中而不在 Gitlab 服务器中

Gitlab pipeline running in VM and not in Gitlab server

我有一个公司的Gitlab服务器,配置了项目和流水线。默认情况下,每次提交完成后,管道开始在 Gitlab 服务器中执行。

我有我的个性化VM,它和Gitlab完全不同。我希望管道将在我的个性化 VM 而不是 Gitlab 服务器中执行。我应该怎么做才能使管道在 VM 上运行而不是在 Gitlab 服务器上运行?

我在 config.toml 中配置了位于 $MYPROJECT/ 中的以下运行程序:

[[runners]]
  name = "Project-name"
  url = "https://gitlab.server/"
  token = "TOKEN ID"
  executor = "shell"
  shell = "bash"

有些地方我不明白。

  1. 如果我想在我的个性化 VM 中执行管道,我应该在 VM [1] 中安装 Gitlab runner 吗?
  2. 我是否应该在 VM 中包含项目源代码,以便它可以在每次提交时读取 config.toml 文件?
  3. 如果我在 Gitlab 服务器中使用令牌密钥注册运行器,Gitlab 服务器如何知道管道将在 VM 中执行而不是在服务器中执行 [2]?
  4. 我应该使用执行程序 docker 还是 shell,在 VM 中执行管道?

[1] https://docs.gitlab.com/runner/install/linux-manually.html

[2]https://docs.gitlab.com/runner/register/#registering-runners

  1. 要运行在机器上运行作业,您需要在该机器上安装 GitLab Runner,并连接到 GitLab 服务器。
  2. 每个运行
  3. 前面自动抓取项目源码
  4. 您可以在注册 运行ner 时使用标签(例如“MyVM”)。然后你可以在你的作业中设置相同的标签,这样这个作业就只能由这个运行ner执行。参见:https://docs.gitlab.com/ee/ci/runners/configure_runners.html#use-tags-to-control-which-jobs-a-runner-can-run
  5. 如果您想在 VM 中使用 docker,则需要使用 docker(需要在此之前安装)。否则使用 shell.