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"
有些地方我不明白。
- 如果我想在我的个性化 VM 中执行管道,我应该在 VM [1] 中安装 Gitlab runner 吗?
- 我是否应该在 VM 中包含项目源代码,以便它可以在每次提交时读取
config.toml
文件?
- 如果我在 Gitlab 服务器中使用令牌密钥注册运行器,Gitlab 服务器如何知道管道将在 VM 中执行而不是在服务器中执行 [2]?
- 我应该使用执行程序
docker
还是 shell
,在 VM 中执行管道?
[1] https://docs.gitlab.com/runner/install/linux-manually.html
[2]https://docs.gitlab.com/runner/register/#registering-runners
- 要运行在机器上运行作业,您需要在该机器上安装 GitLab Runner,并连接到 GitLab 服务器。
- 每个运行
前面自动抓取项目源码
- 您可以在注册 运行ner 时使用标签(例如“MyVM”)。然后你可以在你的作业中设置相同的标签,这样这个作业就只能由这个运行ner执行。参见:https://docs.gitlab.com/ee/ci/runners/configure_runners.html#use-tags-to-control-which-jobs-a-runner-can-run
- 如果您想在 VM 中使用 docker,则需要使用
docker
(需要在此之前安装)。否则使用 shell
.
我有一个公司的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"
有些地方我不明白。
- 如果我想在我的个性化 VM 中执行管道,我应该在 VM [1] 中安装 Gitlab runner 吗?
- 我是否应该在 VM 中包含项目源代码,以便它可以在每次提交时读取
config.toml
文件? - 如果我在 Gitlab 服务器中使用令牌密钥注册运行器,Gitlab 服务器如何知道管道将在 VM 中执行而不是在服务器中执行 [2]?
- 我应该使用执行程序
docker
还是shell
,在 VM 中执行管道?
[1] https://docs.gitlab.com/runner/install/linux-manually.html
[2]https://docs.gitlab.com/runner/register/#registering-runners
- 要运行在机器上运行作业,您需要在该机器上安装 GitLab Runner,并连接到 GitLab 服务器。
- 每个运行 前面自动抓取项目源码
- 您可以在注册 运行ner 时使用标签(例如“MyVM”)。然后你可以在你的作业中设置相同的标签,这样这个作业就只能由这个运行ner执行。参见:https://docs.gitlab.com/ee/ci/runners/configure_runners.html#use-tags-to-control-which-jobs-a-runner-can-run
- 如果您想在 VM 中使用 docker,则需要使用
docker
(需要在此之前安装)。否则使用shell
.