为什么本地搭建

有时候我们对公司远端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下如何重启Oracle

    操作步骤 切换到oracle用户 su – oracle 通过sqlplus以管理员身份登录 sqlplus / as sysdba 然后执行 shutdown immediate 退出sqlplus ...

  2. BUUCTF---RSA1

    RSA基础概念 rsa原理: RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥 RSA算法的具体描述如下: (1) ...

  3. Try .NET & Github Gist

    Try .NET Try .NET 是微软最近推出的在线 C# 运行环境,不用安装 Visual Studio 等,就可以直接上手写 C# 代码. 可以先进来写两行代码看看 https://try.d ...

  4. 一次windows下使用cmake遇到的问题

    背景 在windows下的cmake和mingw提供的make,在windows环境下进行了简单尝试,结果发现make的时候失败: #include <iostream> int main ...

  5. HTB打靶记录-TheFrizz

    信息收集 nmap -sV -sC -O 10.10.11.60 Nmap scan report for 10.10.11.60 Host is up (0.63s latency). Not sh ...

  6. 课程上线:面向 AI 编程 | Semantic Kernel 从入门到精通

    课程计划 本课程设计不低于50课时,目前已录制44课时,已在2025-3-15日发布上线,未完课时将尽快录制发布.点击下方链接可在线试看购买: B 站课堂| Semantic Kernel 从入门到精 ...

  7. Git撤销本地commit(未push)

    查询commit日志 git log 查询到自己commit的上个版本id(commit_id) 撤销(这里是放弃自己commit的更改,直接回退到上个版本源码) git reset --hard c ...

  8. apisix~ApisixPluginConfig的使用

    1. ApisixPluginConfig 的作用 插件配置复用:将插件配置定义为独立的资源,供多个路由或服务引用. 解耦插件与路由:修改插件配置时,只需更新 ApisixPluginConfig,无 ...

  9. MySQL 的覆盖索引是什么?

    MySQL 的覆盖索引是什么? 覆盖索引(Covering Index)是指索引本身包含了查询所需的所有字段数据,从而无需再回表查询的数据访问方式.这种优化能够显著提升查询性能. 1. 覆盖索引的特点 ...

  10. 多文件,从url地址中下载文件并进行压缩

    直接上代码 Controller层 //我这里直接拿实体接收,entity.getFile()是List<对象>,对象里面存储文件相关的内容 @PostMapping("/zip ...