当前位置: 首页 > news >正文

gitlab-runner配置问题记录

引言

笔者曾通过2种方式部署过 gitlab-runner,在 gitlab 中使用这个 runner 拉起 ci job 的过程中或多或少遇到些问题,主要都是 job 中无法访问宿主机的docker 等组件。本篇文档主要记录 gitlab-runner 安装及相关配置。

二进制部署 gitlab-runner

部署

以 arm64 架构的为例

arch="arm64"
curl -LJO "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/rpm/gitlab-runner-helper-images.rpm"
curl -LJO "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/rpm/gitlab-runner_${arch}.rpm"rpm -i gitlab-runner-helper-images.rpm gitlab-runner_arm64.rpm

配置 gitlab-runner

这里就是主要出现问题原因所在,要把 gitlab-runner 的执行用户更新为 root

vi /etc/systemd/system/gitlab-runner.service# 修改 "--user" "gitlab-runner" 中的 gitlab-runner 为root,结果如下
ExecStart=/usr/bin/gitlab-runner "run" "--config" "/etc/gitlab-runner/config.toml" "--working-directory" "/home/gitlab-runner" "--service" "gitlab-runner" "--user" "root"systemctl daemon-reload
systemctl restart gitlab-runner
ps aux | grep gitlab-runner

docker 容器部署 gitlab-runner

部署

sudo docker run -d --name gitlab-runner --restart always -u root \-v /srv/gitlab-runner/config:/etc/gitlab-runner \-v /var/run/docker.sock:/var/run/docker.sock \gitlab/gitlab-runner:latest

配置

在正常 gitlab-runner register 后,得到一个新的 runner 会生成配置到配置文件/etc/gitlab-runner/config.toml 中。此时,需要去更新这个文件中的 runner 的 volumes 信息。

[[runners]]executor = "docker"[runners.docker]volumes = ["/var/run/docker.sock:/var/run/docker.sock"] # 必须,主要就是配置这个

配置完成后,执行 gitlab-runner restart 即可。

http://www.lryc.cn/news/592716.html

相关文章:

  • 洞见AI时代数据底座的思考——YashanDB亮相2025可信数据库发展大会
  • 【C++】——类和对象(中)——默认成员函数
  • LVS(Linux Virtual Server)详细笔记(实战篇)
  • 怎么判断一个对象是不是vue的实例
  • 前端自动化测试:Jest、Puppeteer
  • Rust交叉编译自动化实战
  • 车载监控录像系统:智能安全驾驶的守护者
  • 模式结构-微服务架构设计模式
  • CUPED (Controlled-experiment using Pre-Experiment Data) 论文学习笔记
  • web安全漏洞的原理、危害、利用方式及修复方法
  • AI 驱动的仪表板:从愿景到 Kibana
  • 游戏盾能否保护业务免受DDoS攻击吗?
  • 基于单片机直流电机测速中文液晶显示设计
  • 查找服务器上存在线程泄露的进程
  • 【c++】STL-容器 list 的实现
  • 【leetcode】3201. 找出有效子序列的最大长度(1)
  • C++ -- STL-- stack and queue
  • Python基础④-装饰器、迭代器及常用函数篇
  • [Linux]如何設置靜態IP位址?
  • setTimeout、setInterval、requestAnimationFrame的使用以及区别
  • LeetCode1047删除字符串中的所有相邻重复项
  • Kubernetes Pod深度理解
  • 20250718-6-Kubernetes 调度-Pod对象:环境变量,初始容器,静态_笔记
  • LLM(Large Language Model)大规模语言模型浅析
  • 【c++】中也有floor函数吗?他与JavaScript中的floor有啥区别?
  • RPC 与 Feign 的区别笔记
  • Nestjs框架: 基于TypeORM的多租户功能集成
  • Java全栈面试实录:从Spring Boot到AI大模型的深度解析
  • 北斗网格位置码详解:经纬度到二维网格码的转换(非极地)
  • 智能点餐推荐网站,解决选择困难