什么是 gitlab runner

2024-02-28

我想我从根本上错过了一些东西。我是 CI/CD 新手,正在尝试使用 gitlab 建立我的第一个管道。

该项目是一个预先存在的 PHP 项目。

我还不想清理它,目前我已经将整个东西推入了 docker 容器,并且它与谷歌云的 mysql 数据库等运行良好,因为它应该在本地以及远程谷歌云测试虚拟机上运行。 梦想是能够推送到开发分支,然后将开发分支合并到测试分支,然后触发自动化测试(简单部分),并且还导致远程测试虚拟机(托管在谷歌云上)拉取最新的更改,从最新的 docker 文件重建映像(或从 gitlab 映像寄存器中提取最新的映像)...然后使用最新的映像重建容器。

我正在摆弄 gitlab 的运行程序,但我不明白它的实际用途,尽管浏览了几乎所有的在线内容。 我是否只是将它安装在谷歌云虚拟机中,然后当我从我的开发机器推送到gitlab时..存储库将向运行器(在虚拟机上运行)发出“信号”,以执行一堆脚本(可能包括git pull 最新的更改?)。

因为我已经将我的应用程序预先打包到本地容器中(并将图像推送到图像注册表),所以我需要使用 docker 作为运行器上的执行程序吗?或者我可以只使用 shell 和 shell 中的命令吗?

我缺少什么?

TLDR 和额外内容:

问题:

  1. 跑步者到底是为了什么, 它应该安装在哪里?
    它关心它在哪个目录中运行吗?
    如果它不关心运行哪个目录, 它在哪里执行脚本命令?在根?

  2. 如果我在本地构建自己的图像并将其上传到 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(使用前将#替换为@)

什么是 gitlab runner 的相关文章

  • GItlab:有什么方法可以选择变量值作为下拉菜单

    在 Gitlab ci 中 我们声明了变量 如下所示 USER NAME value description Enter Username File Name description Enter the file name 它只提供一个文本
  • gitlab错误:没有这样的文件或目录,什么问题

    bash home git gitlab apps gitlab gitlab shell bin gitlab shell No such file or directory what is the problem 当我克隆 gitlab
  • 如何删除/取消注册 GitLab 运行程序

    几个月前我注册了一个个人 GitLab 运行器 但我不再使用它 如何完全删除它 使其不会显示在我的 GitLab CI CD 设置页面上 列出跑步者以获取他们的令牌和 URL sudo gitlab runner list 使用指定运行者令
  • 无法连接到 gitlab CI 中 unix:///var/run/docker.sock 的 Docker 守护进程

    我查看了其他问题 但找不到自己的解决方案 我在 gitlab 中设置 CI 并使用 gitlab 的共享运行器 在构建阶段 我使用 docker 镜像作为基础镜像 但是当我使用docker命令它说 无法连接到位于 unix var run
  • 如何在 GITLab WebHook 中将提交 SHA 作为参数传递

    如果有代码提交到 Gitlab 我想触发 Jenkins 作业 I am using WebHooks for this 我正在尝试的网址是 http 10 192 39 32 1024 job SCMSnaps buildWithPara
  • 让 GitLab CI 克隆私有存储库

    我设置了 GitLab 和 GitLab CI 来托管和测试我的一些私人存储库 对于此系统下的作曲家模块 我设置了 Satis 来解析我的私有包 显然这些私有包需要 ssh 密钥来克隆它们 并且我在终端中可以使用它 我可以运行compose
  • 如何将标签推送到 CI 中的分支?

    我想将手动作业添加到我的拉取请求中 以在运行手动作业时标记我的源分支 该标签将触发我的 bitrise 配置的构建 然而 当我尝试推送我的标签时 我遇到了这个问题 注意 我尝试将标签推送到的分支不受保护 git checkout CI CO
  • 有什么方法可以在 Jenkins 中获取 Gitlab 管道工件吗?

    我在gitlab中有一个项目 该项目会在存储库中的每次签入时构建 并在 gitlab 管道成功时创建构建工件 我想在我的詹金斯管道工作中获得这些构建工件 有什么办法可以做到这一点吗 我在 Jenkins 中找不到任何插件来执行此操作 任何帮
  • 动态包含/排除 Gitlab Pipeline 中的作业

    我有一个有几个阶段的管道 detect test build deploy The detect阶段检测应用程序的类型和test and build阶段的作业根据计算结果包含或排除detect The detectstage 将其值写入名为
  • .gitlab-ci.yml 中的规则条件是否有 AND 选项?

    我想创建一些嵌套条件 当它是合并或合并请求并且以特定名称启动 功能 时 我需要此管道才能工作 那么 作业的 唯一 选项中是否有 AND 条件 不 那里没有 你必须使用rules https docs gitlab com ee ci yam
  • Git:推送到多个远程

    Short 如果您将多个远程存储库链接到本地 文件 是否有一种方法可以同时推送到它们 Long 由于工作原因 我的代码必须使用gitlab和github遥控器 因此 一旦我进行了一些本地更改 我就想更新这两个存储库 我的 git confi
  • 更改 Kubernetes 中的 CPU 管理器策略

    我正在尝试更改我管理的 Kubernetes 集群的 CPU 管理器策略 如上所述here https kubernetes io docs tasks administer cluster cpu management policies
  • 从 JIRA 创建 Gitlab 分支

    我最近开始使用 Gitlab 并与 Jira 集成 Gitlab 和 Jira 服务器都是在我的公司环境内部自行托管的 我遇到了一个要求 我想直接从 JIRA 问题在 Gitlab 中为项目 问题创建一个分支 有可能做到吗 如果是的话怎么办
  • Terraform 规划自动化中人类可读的输出

    我已经通过 github jenkins 设置了自动化 以通过 jenkins 发布 repo 的 terraform plan 的输出 作为对 github 中拉取请求的评论 整个编排工作得很好 除了 terraform plan 的输出
  • Webhook 执行错误:Hook 执行成功但返回 HTTP 400 Missing_text_or_fallback_or_attachments

    我正在尝试将 Slack 与 GitLab 集成 我在 slack 中安装了一个 webhook 并将 webhook url 复制到 GitLab 的应用程序集成中 我还在 GitLab 的集成设置中启用了 Slack 集成 但是我不断收
  • 将容器推送到 Azure 容器注册表时资源访问被拒绝

    使用 Docker Compose 将容器推送到私有 Azure 容器注册表时 Azure DevOps 管道返回以下错误 正在推送 容器 注册表 应用程序 最新 推送引用存储库 docker io registry container 被
  • 为不同分支部署GitLab页面

    我正在使用 GitLab Pages 部署我的 React 应用程序 并且运行良好 这是我的gitlab ci yml Using the node alpine image to build the React app image nod
  • Mac上使用docker安装gitlab的权限问题

    我正在尝试让 Gitlab 在本地运行 但遇到了权限问题 cp cannot create regular file etc gitlab gitlab rb Permission denied 我正在运行的命令是 sudo docker
  • 检查 docker 在 Gitlab CICD 管道中运行

    我在用着亚搏体育appGitlab CI CD https docs gitlab com ee ci README html构建 Node 服务器的 Docker 镜像 我想知道是否有办法测试它docker run图像的质量还可以 我们很
  • 将 Gitlab CI 阶段配置为不并行运行

    我有一个具有多个阶段的 Gitlab CI 管道 默认情况下 两个作业之间的同一阶段将并行运行 我所经历的阶段之一是集成测试阶段 该阶段一次只能有一个正在运行的实例 因为它依赖于正在设置和拆除的特定资源 有没有一种简单的方法来指定某个阶段应

随机推荐

  • 为什么倒计时器放入幻灯片母版后会冻结?

    我使用以下代码进行倒计时 在幻灯片模式下 该倒计时将跨越 10 张幻灯片 我将形状放置在幻灯片母版布局中 Set QS ActivePresentation Designs 2 SlideMaster CustomLayouts 2 Dim
  • events.js:85 抛出错误; // 未处理的“错误”事件

    我正在尝试设置 Twitter 应用程序 但目前遇到以下错误 node twitter js events js 85 throw er Unhandled error event SyntaxError Unexpected token
  • 没有在字段 [title] 上声明的类型 [text] 的处理程序 (python elasticsearch

    全部 我使用的python elasticsearch版本是 import elasticsearch print elasticsearch version 5 0 1 映射是 request body mappings post pro
  • 什么是 procs 和 lambda?实际例子请[重复]

    这个问题在这里已经有答案了 可能的重复 何时使用 lambda 何时使用 Proc new https stackoverflow com questions 626 when to use lambda when to use proc
  • Magento 致命错误:在非对象上调用成员函数 getSortedChildren()

    我已经安装了 Magento CE 1 9 版本 在调用主页上的 Catalog 后出现错误 问题似乎与列表 phtml 错误 致命错误 调用成员函数getSortedChildren 在 中的非对象 mageinc app design
  • 我是否滥用 UIViewController 子类化?

    在试图弄清楚为什么 viewWillAppear 没有在我的应用程序中被调用时 我发现了我对 UIViewController 子类的预期用途可能存在的严重误解 根据下面的帖子使用 addSubView 时 viewWillAppear 不
  • 使用 iCloud Apple ID 匿名登录应用程序

    根据这个CloudKit 概述 https developer apple com icloud index html CloudKit 还使您的用户能够使用其 iCloud Apple ID 匿名登录您的应用程序 而无需共享其个人信息 我
  • mysql 区分大小写吗?

    I wrote select from mytable 在我的 Windows 上的 ASP net 应用程序中 它运行良好 在 Linux 上它抱怨我使用mytable代替MyTable 在处理表名时 如何将 Windows 上的 MyS
  • 用于分配用户角色的首选数据库设计方法? (帽子与团体)

    我有一个中等规模的 MySQL 数据库 其中有一个主要的 人员 表 其中包含与剧院和戏剧学校相关的每个人的基本联系信息 我负责维护和开发许多 Web 应用程序 有些人只是联系人 也就是说 他们的 人 表记录是我们需要存储的有关他们的所有信息
  • 如何在 mod_rewrite 中设置可选参数

    我在一个新项目中 正在设计 URL 结构 问题是我希望 URL 看起来像这样 category 23 keyword 5 正常页面是 search php q keyword cat 23 page 5所以我的问题是 cat and pag
  • 不同类别因素的欧几里得距离按组迭代

    更新 Rui 建议的答案很棒并且可以正常工作 然而 当我在大约 700 万个观察值 我的实际数据集 上运行它时 R 陷入了计算块 我使用的是具有 64GB RAM 的机器 任何其他解决方案将不胜感激 我有一个专利数据框 其中包含公司 申请年
  • 首先按 null 排序,然后按其他变量排序

    这是我现在的代码 SELECT id number FROM Media WHERE user 10 ORDER BY id number 但我希望它看起来像 SELECT id number FROM Media WHERE user 1
  • 如何隐藏 F# 中的方法?

    我目前正在 F 中实现 Spec 框架 我想隐藏我的 Equals GetHashCode 等方法should类型 以便 API 不会因这些而混乱 我知道在 C 中 这是通过让类实现如下接口来完成的 using System using S
  • 在 Nuget 包中公开 Azure Functions

    我们希望在我们的不止一种产品中实现可重用的功能 我想做的是 创建一个包含一个或多个 Azure Functions 附加了 FunctionNameAttribute 的静态方法 的 C 项目 将此项目转为NuGet包 在 Azure Fu
  • 从前序和后序列表重建树

    考虑这样一种情况 您有两个节点列表 您只知道其中一个是某棵树的前序遍历的表示 另一个是同一棵树的后序遍历的表示 我相信可以从这两个列表精确地重建树 并且我认为我有一个算法可以做到这一点 但尚未证明 由于这将是硕士项目的一部分 我需要绝对确定
  • Node Mongo Native - 如何判断游标何时耗尽?

    的文档节点 mongodb nativecollection find 功能 https github com mongodb node mongodb native find说它创建一个游标对象 该对象延迟返回匹配的文档 此外 游标的基本
  • tkinter 小部件的 cnf 参数

    所以 我正在研究代码here http svn python org projects python branches pep 0384 Lib tkinter init py在每个班级 几乎 我都看到一个争论cnf 到构造函数 但除非我错
  • org-mode取消\hypersetup后有什么影响?

    我用自己的序言在 org 模式下制作 pdf 但生成的 PDF 或 tex 文件始终显示以下信息 format hypersetup n pdfkeywords s n pdfsubject s n pdfcreator s n org e
  • 如何创建具有延迟的可观察对象

    Question 出于测试目的 我正在创建Observable替换实际 http 调用返回的可观察对象的对象Http 我的可观察对象是使用以下代码创建的 fakeObservable Observable create obs gt obs
  • 什么是 gitlab runner

    我想我从根本上错过了一些东西 我是 CI CD 新手 正在尝试使用 gitlab 建立我的第一个管道 该项目是一个预先存在的 PHP 项目 我还不想清理它 目前我已经将整个东西推入了 docker 容器 并且它与谷歌云的 mysql 数据库