作者:手机用户2502883113 | 来源:互联网 | 2023-01-08 23:15
我想我从根本上错过了一些东西.我是CI/CD的新手,并试图用gitlab设置我的第一个管道.
该项目是一个预先存在的PHP项目.
我还不想清理它,此刻我已经将整个东西推入了一个docker容器中,它正好与google cloud的mysql数据库等交谈,因为它应该在本地以及远程google云测试VM .我们的梦想是能够推动开发分支,然后将dev banch合并到测试分支中,然后TRIGGERS自动化测试(简单部分),并且还导致远程测试VM(托管在谷歌云上),推出最新更改,从最新的docker文件重建图像(或从gitlab图像寄存器中提取最新图像)...然后使用最新图像重建容器.
我正在玩gitlab的跑步者,但我不了解它的实际情况,尽管几乎查看了所有的在线内容.我只是将它安装在谷歌云虚拟机中,然后当我从我的开发机器推送到gitlab时...回购将"发出信号"跑步者(在VM上运行,执行一堆脚本(可能包括git拉最新的变化?).
因为我已经将我的应用程序预先打包到本地容器中(并将图像推送到图像注册表)我是否需要使用docker作为我在跑步者身上的执行者?或者我可以使用shell和shell命令吗?
我错过了什么?
TLDR和额外:
问题:
什么是跑步者实际上,它意味着安装在哪里?
是否关心它运行在哪个目录中?
如果它不关心它运行的目录,它在哪里执行它的脚本命令?在根?
如果我在本地构建自己的图像并将其上传到gitlab的注册表,
我需要将执行者设置为docker吗?我不应该只是将它设置为shell,拉动图像,并构建它?(假设跑步者在远程VM上运行).
1> Kalpa Gunara..:
什么是赛跑者?
你有你的项目和.gitlab-ci.yml
文件..gitlab-ci.yml
定义CI/CD管道的哪些阶段以及每个阶段的操作.这通常包括构建,测试和部署阶段.在每个阶段中,您可以定义多个作业.例如,在构建阶段,你可能有3个工作岗位的基础上Debian的,CentOS的和窗口(在GitLab词汇build:debian
,build:centos
,build:windows
).GitLab运行器克隆项目读取gitlab-ci.yaml文件并执行他指示要执行的操作.所以基本上GitLab runner是一个Golang
执行一些指令任务的过程.
它意味着要安装在哪里?
您可以在此处列出的所需环境中安装跑步者.https://docs.gitlab.com/runner/install/
或者您可以使用已安装在GitLab基础架构上的共享运行器.
是否关心它运行在哪个目录中?
是.由跑步者执行的每项任务都与https://gitlab.com/help/ci/variables/README中的CI_PROJECT_DIR
定义相对应.但是你可以改变这种行为.
它在哪里执行它的脚本命令?在根?
我需要将执行者设置为docker吗?我不应该只是将它设置为shell,拉动图像,并构建它?
跑步者可以有多个执行器,如docker,shell,virtualbox等,但docker是最常见的.如果您使用docker作为执行程序,您可以从docker hub或配置的注册表中提取任何图像,并且可以使用docker镜像执行大量的stff.在docker环境中,通常以root用户身份运行它们.
https://docs.gitlab.com/runner/executors/README.html
我认为这里的要点是:当某人推送一个提交或将一个提交合并到master分支时,runner如何知道它使管道失效?gitlab如何触发跑步者?还是跑步者每隔一个小时就会调用api到gitlab进行检查吗?