在本地调试 GitLab CI Pipeline (WSL搭建GitLab Runner)
为什么本地搭建
有时候我们对公司远端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
- 打开:
CI/CD > Runners > Create a new runner - 执行以下命令:
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)的更多相关文章
- 手把手详解持续集成之GitLab CI/CD
一.环境准备 首先需要有一台 GitLab 服务器,然后需要有个项目:这里示例项目以 Spring Boot 项目为例,然后最好有一台专门用来 Build 的机器,实际生产中如果 Build 任务不频 ...
- 前端初探 Gitlab CI/CD
前言 纵观人类历史的发展以及三次工业革命,你会发现利用机器来替代部分人力劳动,将重复的工作自动化从而解放生产力都是发展的必然趋势,在软件工程领域也不例外,其中 CI/CD 就是其中一项,那么什么是 C ...
- Gitlab CI/CD
Gitlab CI/CD 前言 纵观人类历史的发展以及三次工业革命,你会发现利用机器来替代部分人力劳动,将重复的工作自动化从而解放生产力都是发展的必然趋势,在软件工程领域也不例外,其中 CI/CD 就 ...
- [转]GitLab Continuous Integration (GitLab CI/CD)
本文转自:https://docs.gitlab.com/ee/ci/README.html GitLab Continuous Integration (GitLab CI/CD) The bene ...
- 使用GitLab CI + Capistrano部署CakePHP应用程序
使用GitLab CI + Capistrano部署CakePHP应用程序 摘要:本文描述了如使用GitLab CI + Capistrano部署CakePHP应用程序. 目录 1. 问题2. 解决方 ...
- K8s 部署 Gitlab CI Runner
K8s 版本:1.20.6 GitLab CI 最大的作用是管理各个项目的构建状态.因此,运行构建任务这种浪费资源的事情交给一个独立的 Gitlab Runner 来做就会好很多,而且 Gitlab ...
- [转] 基于Gitlab CI搭建持续集成环境
[From] https://blog.csdn.net/wGL3k77y9fR1k61T1aS/article/details/78798577 前言 本文是在12月12号迅雷@赵兵在前端早读课第三 ...
- 基于GitLab CI搭建Golang自动构建环境
基于GitLab CI搭建Golang自动构建环境 Golang发布遇到的问题 对于golang的发布,之前一直没有一套规范的发布流程,来看看之前发布流程: 方案一 开发者本地环境需要将环境变量文件改 ...
- Docker搭建自己的Gitlab CI Runner
转载自:https://cloud.tencent.com/developer/article/1010595 1.Gitlab CI介绍 CI:持续集成,我们通常使用CI来做一些自动化工作,比如程序 ...
- OpenCart本地调试环境搭建
OpenCart简介: 免费开源网络版电子商务系统,是建立在线商务网站首选之一.有众多用户和开发基础,结合其丰富特性与模板插件,可最大化定制在线商店.(也就是用来方便开网店的) 本地调试准备: Fir ...
随机推荐
- 【Linux】5.11 shell文件包含
Shell 文件包含 ?和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filename # 注意点号 ...
- 举个栗子之gorpc - 消息的编码和解码
2022年的第一个rpc,比以往来的更早一些... 留杭过年...写点东西 初始化项目gorpc 借助go module我们可以轻易创建一个新的项目 mkdir gorpc go mod init g ...
- mybatis报错Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.ArrayList and java
原因 传入参数为List<String>不能用lists != '' 判断 解决 将lists != '' 的判断去掉或者改为lists .size>0 其他 如果是Integer类 ...
- Jmeter参数化总结
参数化步骤: 1.连接数据库 2.获取account表手机号数据 3.获取手机号个数 4.增加For Each控制器 5.将请求添加至循环控制器里面 脚本:循环登录.jmx 页面如下: 下面主要说明F ...
- Rabbitmq防止消息的丢失
一.Rabbitmq的流程图 二.出现消息丢失的三个可能 A:写消息的过程,消息都没到rabbitmq,在网络传输过程就丢了:或者是消息到了rabbitmq,但是人家内部出错了没保存下来 例子: 1. ...
- 根据返回值,判断是否执行下一步的方法(Run Keyword And Return Status指令的使用)
场景分析: 上图"通用模版测试"内容 满足,如果当前页面存在这条数据,即结束执行本条用例,自动执行下一条.如果没有,则调用新建模版关键字,执行新建模版. 脚本如下 1配置运费模版 ...
- 通过apache tika从文档(pdf、doc、docx、txt)中 提取特征数据
本文介绍如何通过apache tika从文档(pdf.doc.docx.txt)中 提取特征数据,比如文档中有身份证.姓名等信息.[全部是经本人实际测试过的功能] 1.需引入相关pom依赖 <! ...
- FirstUI:Deepseek能帮我们做很多事情,而这款开源框架专为开发者设计的开源UI框架,让你的项目加速起飞
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 开发者们总是在寻找能够提高工作效率.简化开发流程的工具.今天,我们要介绍的是一个名为Firs ...
- 一个简单的struts2配置
目录 1 需求 2 需要导入的jar包 3 项目的目录结构 3.1 demo1.jsp 3.2 success.jsp 3.3 HelloAction.java 3.4 struts.xml 3.5 ...
- SQL 强化练习 (十二)
还是 sql 冲鸭... , 停不下来了都, 趁着激情还在, 赶紧再整一把, 也渐渐发现, sql 果然是非常强大的, 然后搞了半天, 发现在写sql 的时候, 从它执行顺序来思考, 这样反而会轻松很 ...
