我觉得我基本上是漏了什么东西。我是CI/CD的新手,正在尝试使用gitlab创建我的第一个流水线。
该项目是一个现有的PHP项目。
我暂时不想对它进行清理,目前我已经将整个项目推到了docker容器中,并且在本地和远程google云测试VM上运行良好,与google云的mysql数据库正常通信等。 我的梦想是能够推送到开发分支,然后将dev banch合并到test分支,这将触发自动化测试(容易部分),并且导致远程测试VM(托管在google云)拉取最新更改,从最新的docker文件重建映像(或从gitlab映像寄存器中拉取最新的映像)......然后使用最新的映像重新构建容器。
我在玩gitlab的runner,但我不理解它实际上是用来做什么的,尽管我查看了几乎所有的在线内容。 我只需在google云VM中安装它,然后当我从开发机器向gitlab推送时,存储库将' signal '运行程序(在VM上运行,执行一堆脚本(可能包括git pull最新更改?
因为我已经在本地将我的应用程序打包到一个容器中(并将映像推送到映像寄存器),所以我需要将docker作为运行程序在runner上使用吗?还是我可以只使用shell,然后在shell中运行命令?
我错过了什么?
简要总结:
问题:
- 运行程序实际上是什么,
它应该安装在哪里?
它是否在意运行的目录?
如果它不在意它运行的目录, 那么它在哪里执行它的脚本命令?在根目录吗? - 如果我正在本地构建自己的映像并将其上传到gitlab的注册表中,
我是否需要将我的执行程序设置为docker?我不应该只将其设置为shell,然后拉取映像并构建它吗?(假设runner正在远程VM上运行)。