为什么本地搭建

有时候我们对公司远端Gitlab Server的主分支(main)没有权限。在调试 CI/CD 时,我们需要编辑 .gitlab-ci.yml,然后提交,再进行合并,才能查看 Pipeline 的执行结果。

GitLab Runner 有时候显示“等待中(Pending)”,这通常是因为资源有限,其他人也有并行的 Pipeline 任务。

在 Windows 上创建 GitLab 环境和 GitLab Runner 并不容易。

由于我们一般不使用 Linux 发行版作为主操作系统,WSL 是一个很好的解决方案


️ 使用 WSL 和本地 GitLab Runner 搭建 GitLab CI/CD

前提条件

需要安装 WSL(例如:Ubuntu 22.04.5 LTS)。

安装所需的软件包:

sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata perl
sudo apt install -y postfix

安装 GitLab CE

添加 GitLab 仓库

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

安装 GitLab CE

sudo EXTERNAL_URL="http://localhost" apt-get install gitlab-ce

启动并配置 GitLab

sudo gitlab-ctl reconfigure
sudo gitlab-ctl start

默认 root 用户的密码保存在:

/etc/gitlab/initial_root_password

可以在以下页面更改密码:

http://localhost/-/user_settings/password/edit

→ 编辑个人资料 → 密码

这让你成为 GitLab 的 root 用户。

对于快速测试来说,不再会遇到权限问题,非常方便。

⚙️ 安装 GitLab Runner

添加 GitLab Runner 仓库

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash

安装 GitLab Runner

sudo apt-get install gitlab-runner

注册 GitLab Runner

  1. 打开:CI/CD > Runners > Create a new runner
  2. 执行以下命令:
gitlab-runner register --url http://localhost --token <yourToken>

配置已保存至:

/etc/gitlab-runner/config.toml

验证 Runner 是否正常

sudo gitlab-runner verify

查看所有 Runner:

http://localhost/admin/runners

使用 IP 访问 GitLab

查找本机 IP 地址

hostname -I

示例输出:

172.24.208.12

修改 GitLab 配置文件

sudo vi /etc/gitlab/gitlab.rb

将以下行修改为你的 IP 地址:

external_url 'http://172.24.208.12'

重新配置 GitLab

sudo gitlab-ctl reconfigure

之后如果Pipeline任务失败可以手动点击 “Retry” 重新运行 Pipeline。

在本地调试 GitLab CI Pipeline (WSL搭建GitLab Runner)的更多相关文章

  1. 手把手详解持续集成之GitLab CI/CD

    一.环境准备 首先需要有一台 GitLab 服务器,然后需要有个项目:这里示例项目以 Spring Boot 项目为例,然后最好有一台专门用来 Build 的机器,实际生产中如果 Build 任务不频 ...

  2. 前端初探 Gitlab CI/CD

    前言 纵观人类历史的发展以及三次工业革命,你会发现利用机器来替代部分人力劳动,将重复的工作自动化从而解放生产力都是发展的必然趋势,在软件工程领域也不例外,其中 CI/CD 就是其中一项,那么什么是 C ...

  3. Gitlab CI/CD

    Gitlab CI/CD 前言 纵观人类历史的发展以及三次工业革命,你会发现利用机器来替代部分人力劳动,将重复的工作自动化从而解放生产力都是发展的必然趋势,在软件工程领域也不例外,其中 CI/CD 就 ...

  4. [转]GitLab Continuous Integration (GitLab CI/CD)

    本文转自:https://docs.gitlab.com/ee/ci/README.html GitLab Continuous Integration (GitLab CI/CD) The bene ...

  5. 使用GitLab CI + Capistrano部署CakePHP应用程序

    使用GitLab CI + Capistrano部署CakePHP应用程序 摘要:本文描述了如使用GitLab CI + Capistrano部署CakePHP应用程序. 目录 1. 问题2. 解决方 ...

  6. K8s 部署 Gitlab CI Runner

    K8s 版本:1.20.6 GitLab CI 最大的作用是管理各个项目的构建状态.因此,运行构建任务这种浪费资源的事情交给一个独立的 Gitlab Runner 来做就会好很多,而且 Gitlab ...

  7. [转] 基于Gitlab CI搭建持续集成环境

    [From] https://blog.csdn.net/wGL3k77y9fR1k61T1aS/article/details/78798577 前言 本文是在12月12号迅雷@赵兵在前端早读课第三 ...

  8. 基于GitLab CI搭建Golang自动构建环境

    基于GitLab CI搭建Golang自动构建环境 Golang发布遇到的问题 对于golang的发布,之前一直没有一套规范的发布流程,来看看之前发布流程: 方案一 开发者本地环境需要将环境变量文件改 ...

  9. Docker搭建自己的Gitlab CI Runner

    转载自:https://cloud.tencent.com/developer/article/1010595 1.Gitlab CI介绍 CI:持续集成,我们通常使用CI来做一些自动化工作,比如程序 ...

  10. OpenCart本地调试环境搭建

    OpenCart简介: 免费开源网络版电子商务系统,是建立在线商务网站首选之一.有众多用户和开发基础,结合其丰富特性与模板插件,可最大化定制在线商店.(也就是用来方便开网店的) 本地调试准备: Fir ...

随机推荐

  1. 【Linux】5.11 shell文件包含

    Shell 文件包含 ?和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filename # 注意点号 ...

  2. 举个栗子之gorpc - 消息的编码和解码

    2022年的第一个rpc,比以往来的更早一些... 留杭过年...写点东西 初始化项目gorpc 借助go module我们可以轻易创建一个新的项目 mkdir gorpc go mod init g ...

  3. mybatis报错Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.ArrayList and java

    原因 传入参数为List<String>不能用lists != '' 判断 解决 将lists != '' 的判断去掉或者改为lists .size>0 其他 如果是Integer类 ...

  4. Jmeter参数化总结

    参数化步骤: 1.连接数据库 2.获取account表手机号数据 3.获取手机号个数 4.增加For Each控制器 5.将请求添加至循环控制器里面 脚本:循环登录.jmx 页面如下: 下面主要说明F ...

  5. Rabbitmq防止消息的丢失

    一.Rabbitmq的流程图 二.出现消息丢失的三个可能 A:写消息的过程,消息都没到rabbitmq,在网络传输过程就丢了:或者是消息到了rabbitmq,但是人家内部出错了没保存下来 例子: 1. ...

  6. 根据返回值,判断是否执行下一步的方法(Run Keyword And Return Status指令的使用)

    场景分析: 上图"通用模版测试"内容 满足,如果当前页面存在这条数据,即结束执行本条用例,自动执行下一条.如果没有,则调用新建模版关键字,执行新建模版. 脚本如下 1配置运费模版 ...

  7. 通过apache tika从文档(pdf、doc、docx、txt)中 提取特征数据

    本文介绍如何通过apache tika从文档(pdf.doc.docx.txt)中 提取特征数据,比如文档中有身份证.姓名等信息.[全部是经本人实际测试过的功能] 1.需引入相关pom依赖 <! ...

  8. FirstUI:Deepseek能帮我们做很多事情,而这款开源框架专为开发者设计的开源UI框架,让你的项目加速起飞

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 开发者们总是在寻找能够提高工作效率.简化开发流程的工具.今天,我们要介绍的是一个名为Firs ...

  9. 一个简单的struts2配置

    目录 1 需求 2 需要导入的jar包 3 项目的目录结构 3.1  demo1.jsp 3.2 success.jsp 3.3 HelloAction.java 3.4 struts.xml 3.5 ...

  10. SQL 强化练习 (十二)

    还是 sql 冲鸭... , 停不下来了都, 趁着激情还在, 赶紧再整一把, 也渐渐发现, sql 果然是非常强大的, 然后搞了半天, 发现在写sql 的时候, 从它执行顺序来思考, 这样反而会轻松很 ...