我想我从根本上错过了一些东西。我是 CI/CD 新手,正在尝试使用 gitlab 建立我的第一个管道。
该项目是一个预先存在的 PHP 项目。
我还不想清理它,目前我已经将整个东西推入了 docker 容器,并且它与谷歌云的 mysql 数据库等运行良好,因为它应该在本地以及远程谷歌云测试虚拟机上运行。
梦想是能够推送到开发分支,然后将开发分支合并到测试分支,然后触发自动化测试(简单部分),并且还导致远程测试虚拟机(托管在谷歌云上)拉取最新的更改,从最新的 docker 文件重建映像(或从 gitlab 映像寄存器中提取最新的映像)...然后使用最新的映像重建容器。
我正在摆弄 gitlab 的运行程序,但我不明白它的实际用途,尽管浏览了几乎所有的在线内容。
我是否只是将它安装在谷歌云虚拟机中,然后当我从我的开发机器推送到gitlab时..存储库将向运行器(在虚拟机上运行)发出“信号”,以执行一堆脚本(可能包括git pull 最新的更改?)。
因为我已经将我的应用程序预先打包到本地容器中(并将图像推送到图像注册表),所以我需要使用 docker 作为运行器上的执行程序吗?或者我可以只使用 shell 和 shell 中的命令吗?
我缺少什么?
TLDR 和额外内容:
问题:
跑步者到底是为了什么,
它应该安装在哪里?
它关心它在哪个目录中运行吗?
如果它不关心运行哪个目录,
它在哪里执行脚本命令?在根?
如果我在本地构建自己的图像并将其上传到 gitlab 的注册表,
我需要将执行器设置为 docker 吗?我不应该只是将其设置为 shell、拉取映像并构建它吗? (假设运行程序正在远程虚拟机上运行)。
跑步者到底是做什么用的?
您有您的项目以及.gitlab-ci.yml
file. .gitlab-ci.yml
定义您的 CI/CD 管道有哪些阶段以及每个阶段要做什么。这通常包括构建、测试、部署阶段。在每个阶段中您可以定义多个作业。例如,在构建阶段,您可能有 3 个工作需要在 debian、centos 和 windows 上构建(在 GitLab 术语表中)build:debian
, build:centos
, build:windows
)。 GitLab 运行者克隆项目,读取 gitlab-ci.yaml 文件并按照指示执行操作。所以基本上 GitLab runner 是Golang
执行一些指示任务的进程。
它应该安装在哪里?
您可以在此处列出的所需环境中安装运行程序。https://docs.gitlab.com/runner/install/ https://docs.gitlab.com/runner/install/或者
您可以使用已安装在 GitLab 基础设施上的共享运行器。
它关心它在哪个目录中运行吗?
是的。跑步者执行的每个任务都是相对的CI_PROJECT_DIR
定义于https://gitlab.com/help/ci/variables/README https://gitlab.com/help/ci/variables/README。但你可以改变这种行为。
它在哪里执行脚本命令?在根?
我需要将执行器设置为 docker 吗?我不应该只是将其设置为 shell、拉取映像并构建它吗?
一个运行器可以有多个执行器,例如 docker、shell、virtualbox 等,但 docker 是最常见的一个。如果您使用 docker 作为执行器,您可以从 docker hub 或配置的注册表中提取任何映像,并且可以使用 docker 映像执行大量 stff 操作。在 docker 环境中,通常您以 root 用户身份运行它们。https://docs.gitlab.com/runner/executors/README.html https://docs.gitlab.com/runner/executors/README.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)