【发布时间】:2018-04-27 03:09:34
【问题描述】:
我认为我从根本上错过了一些东西。我是 CI/CD 新手,正在尝试使用 gitlab 设置我的第一个管道。
该项目是一个预先存在的 PHP 项目。
我还不想清理它,目前我已经将整个东西推到了一个 docker 容器中,它运行良好,可以与谷歌云的 mysql 数据库等进行通信,因为它应该在本地和远程谷歌上云测试虚拟机。 梦想是能够推送到开发分支,然后将开发分支合并到测试分支中,然后触发自动化测试(简单的部分),并导致远程测试虚拟机(托管在谷歌云上),拉最新更改,从最新的 docker 文件重建镜像(或从 gitlab 镜像寄存器中拉取最新的镜像)...然后用最新的镜像重建容器。
我正在玩 gitlab 的跑步者,但我不明白它的实际用途,尽管浏览了几乎所有的在线内容。 我只是将它安装在谷歌云虚拟机中,然后当我从我的开发机器推送到 gitlab 时.. repo 将“向”运行器(在虚拟机上运行)发出“信号”,以执行一堆脚本(可能包括git pull 最新的变化?)。
因为我已经在本地将我的应用程序预打包到一个容器中(并将图像推送到图像注册表),我是否需要使用 docker 作为我在运行器上的执行器?或者我可以只使用 shell 和 shell 中的命令吗?
我错过了什么?
TLDR 和其他:
问题:
跑步者实际上是为了什么, 它应该安装在哪里?
它是否关心它在哪个目录中运行?
如果它不在乎运行哪个目录, 它在哪里执行它的脚本命令?在根?如果我在本地构建自己的图像并将它们上传到 gitlab 的注册表,
我需要将我的执行程序设置为 docker 吗?我不应该将它设置为外壳,拉取图像并构建它吗? (假设 runner 正在远程 VM 上运行)。
【问题讨论】:
标签: gitlab devops gitlab-ci-runner