我觉得我从根本上错过了什么。我是新的CI/CD,并试图建立我的第一个管道与gitlab。
该项目是一个预先存在的PHP项目。
我还不想把它清理干净,现在我已经把所有的东西都塞进了一个码头容器里,它运行的很好,可以和google云的mysql数据库聊天等等,因为它应该在本地和远程的google云测试VM上运行。我们的梦想是能够推送到开发分支,然后将dev banch合并到测试分支中,然后在测试分支中触发自动测试(轻松部分),并导致远程测试VM (托管在google云上)、提取最新的更改、从最新的docker文件中重建映像(或者从gitlab图像寄存器中提取最新的映像)。然后用最新的图像重建容器。
我在和gitlab的跑步者玩,但我不明白它到底是为了什么,尽管我浏览了几乎所有的在线内容。我只是把它安装在google云VM中,然后当我从我的开发机器上推到gitlab时。该回购将“信号”运行的运行(运行在VM上,以执行一堆脚本(这可能包括git拉最新的变化?)。
因为我已经在本地将我的应用程序打包到一个容器中(并将图像推送到图像注册表中),我需要在运行程序上使用docker作为我的执行器吗?或者我可以使用shell和shell命令吗?
我遗漏了什么?
TLDR和额外的:
问题:
我需要把我的遗嘱执行人设为码头吗?我不应该把它设置为shell,拉出图像,然后构建它吗?(假设运行程序在远程VM上运行)。
发布于 2017-11-14 20:47:39
跑步到底是为了什么?
您的项目连同.gitlab-ci.yml
文件一起使用。.gitlab-ci.yml
定义了CI/CD管道的哪个阶段,以及在每个阶段要做什么。这通常由构建、测试、部署阶段组成。在每个阶段中,您可以定义多个作业。例如,在构建阶段,可以在debian、centos和windows上构建3个作业(在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中定义的https://gitlab.com/help/ci/variables/README。但你可以改变这种行为。
它在哪里执行它的脚本命令?在根上? 我需要把我的遗嘱执行人设为码头吗?我不应该把它设置为shell,拉出图像,然后构建它吗?
一个跑步者可以有多个执行者,如码头、机壳、虚拟机箱等,但对接者是最常见的。如果您使用停靠器作为执行器,您可以从停靠中心或配置的注册表中提取任何图像,并且可以对停靠器映像执行大量的stff操作。在码头环境中,您通常以根用户的身份运行它们。https://docs.gitlab.com/runner/executors/README.html
发布于 2019-05-14 18:00:09
参见gitlab访问日志,runner不断地轮询服务器
https://stackoverflow.com/questions/47281209
复制