杂记 | 记录一次使用docker安装gitlab-runner的过程(馋哭了)

news2024/12/25 9:54:37

文章目录

  • 01 前情提要
  • 02 编写docker-compose.yml
  • 03 启动与注册
  • 04 流水线部署


01 前情提要

前不久使用docker部署好了自己的gitlab服务,简直香惨了。
上集传送门:记录一次使用Docker安装gitlab-ce的过程(含配置交换内存)

现在,gitlab-runner终于可以来了!

一句话概括有多香:成功安装gitlab-runner后,就可以流水线部署项目了,毕竟“懒惰”是程序员的三大美德之一。

02 编写docker-compose.yml

首先,在服务器上新建一个名为gitlab-runner的目录。
然后在里面新建docker-compose.yml文件。
内容参考:

version: '3.8'
services:
  gitlab-runner:
    image: gitlab/gitlab-runner:latest
    container_name: gitlab-runner
    restart: always
    volumes:
      - ./config:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock  # 这一行是固定写法 不要随便改

03 启动与注册

在docker-compose.yml目录下,分别运行命令:

# 先拉取镜像
docker-compose pull

# 拉取完成后,启动镜像
docker-compose up -d

# 查看启动日志
docker-compose logs -f

查看日志的时候,会发现许多报错信息:
在这里插入图片描述
不慌,这是正常现象。
这是因为runner没有注册,可以理解成runner容器需要和gitlab-ce容器绑定才能使用。

注册时需要填写一些字段,先到gitlab里准备好。

登录gitlab进入设置界面(管理员登录更佳)

在这里插入图片描述

找到CI/CD下的Runner条目,在“新建Runner”旁有3个小点,点击。

在这里插入图片描述

拿到url和令牌:

在这里插入图片描述
然后开始注册:

# 进入容器内部并执行注册操作
docker exec -it gitlab-runner gitlab-runner register  # 第一个gitlab-runner是容器名称 根据实际情况填写

中间需要填写一些信息

# 01 首先,会要求填写url
> Enter the GitLab instance URL (for example, https://gitlab.com/):
# 填刚才拿到的url

# 02 然后,要求填写令牌
> Enter the registration token:
# 填刚才拿到的token

# 03 填写描述
> Enter a description for the runner:
# 随便写,之后可以到设置页面更改

# 04 填写标签 ,分隔
> Enter tags for the runner (comma-separated):
default_runner  # 这个要填一个标签名,之后可以修改

# 05 填写可选说明
> Enter optional maintenance note for the runner:
# 随便写或不写 之后可改

# 06 选择执行器 如果不会选 就选docker
> Enter an executor: custom, docker, shell, ssh, virtualbox, docker-autoscaler, docker+machine, instance, docker-windows, parallels, kubernetes:
docker  # 输入docker并回车

# 07 选择默认镜像(docker选项会有这一步,默认镜像仅当.gitlab-ci.yml没有指定时才生效)
> Enter the default Docker image (for example, ruby:2.7):
alpine:latest  # 我写了个alpine 供参考

# 提示创建成功!
> Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

04 流水线部署

作为测试,我新建了一个项目,写了一个index.html页面。
编写.gitlab-ci.yml文件

pages:
 stage: deploy
 script:
   - mkdir .public
   - cp -r ./* .public
   - rm -rf public
   - mv .public public
 artifacts:
   paths:
     - public
 rules:
   - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

新建一个流水线:

在这里插入图片描述

运行时遇到问题:

在这里插入图片描述

因为我的runner设置了标签,要求作业也要设置对应的标签才行,一种方案是在.gitlab-ci.yml中新增标签。

我这里偷个懒,勾选支持无标签运行。

在这里插入图片描述

重新部署:

在这里插入图片描述
🎉🎉🎉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/887153.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

postgresql的在windows下的安装

postgresql的在windows下的安装 下载安装步骤超级用户设置密码本地化设置安装信息安装完成 查看postgresql服务pgAdmin的使用打开命令 行工具查询数据库版本 创建数据库 下载 官网地址 https://www.postgresql.org/ 下载页面 https://www.postgresql.org/download/ windows下…

Spring Boot 中的 AOP,到底是 JDK 动态代理还是 Cglib 动态代理

大家都知道,AOP 底层是动态代理,而 Java 中的动态代理有两种实现方式: 基于 JDK 的动态代理 基于 Cglib 的动态代理 这两者最大的区别在于基于 JDK 的动态代理需要被代理的对象有接口,而基于 Cglib 的动态代理并不需要被代理对…

TiDB数据库从入门到精通系列之六:使用 TiCDC 将 TiDB 的数据同步到 Apache Kafka

TiDB数据库从入门到精通系列之六:使用 TiCDC 将 TiDB 的数据同步到 Apache Kafka 一、技术流程二、搭建环境三、创建Kafka changefeed四、写入数据以产生变更日志五、配置 Flink 消费 Kafka 数据 一、技术流程 快速搭建 TiCDC 集群、Kafka 集群和 Flink 集群创建 c…

离谱的Bug

离谱的 Bug Bug 情况发现 Bug修改 Bug其他感受历史 Bug火星Spirit号Mars Global Surveyor任务 Bug 情况 有一次,我在开发一个网页应用程序时,遇到了一个令人目瞪口呆的Bug。这个Bug出现在一个特定的页面上,当用户点击某个按钮时,…

07微服务的事务管理机制

一句话导读 在单体应用程序中,事务通常是在单个数据库或单个操作系统中管理的,而在微服务架构中,事务需要跨越多个服务和数据库,这就使得事务管理变得更加复杂和困难。 目录 一句话导读 一、微服务事务管理的定义和意义 二、微…

ORCA优化器浅析——CDXLScalar Base class for representing scalar DXL operators

CDXLScalar类作为Base class for representing scalar DXL operators,该类只是定义一些接口,其中实现了GetDXLOperatorType函数,其返回EdxloptypeScalar,代表scalar DXL operators。 class CDXLScalar : public CDXLOperator{ pr…

迅捷视频工具箱:多功能音视频处理软件

这是一款以视频剪辑、视频转换、屏幕录像等特色功能为主,同时附带有视频压缩、视频分割、视频合并等常用视频处理功能为主的视频编辑软件。该软件操作简单易用,即使没有视频处理经验的用户也可以轻松上手。将视频添加到工具箱对应功能后,简单…

01- vdom 和模板编译源码

组件渲染的过程 template --> ast --> render --> vDom --> 真实的Dom --> 页面 Runtime-Compiler和Runtime-Only的区别 - 简书 编译步骤 模板编译是Vue中比较核心的一部分。关于 Vue 编译原理这块的整体逻辑主要分三个部分,也可以说是分三步&am…

sklearn机器学习库(二)sklearn中的随机森林

sklearn机器学习库(二)sklearn中的随机森林 集成算法会考虑多个评估器的建模结果,汇总之后得到一个综合的结果,以此来获取比单个模型更好的回归或分类表现。 多个模型集成成为的模型叫做集成评估器(ensemble estimator)&#xf…

RabbitMq-1基础概念

RabbitMq-----分布式中的一种通信手段 1. MQ的基本概念(message queue,消息队列) mq:消息队列,存储消息的中间件 分布式系统通信的两种方式:直接远程调用,借助第三方完成间接通信 消息的发送方是生产者&#xff0c…

爬虫逆向实战(九)--猿人学第十三题

一、数据接口分析 主页地址:猿人学第十三题 1、抓包 通过抓包可以发现数据接口是api/match/13 2、判断是否有加密参数 请求参数是否加密? 无请求头是否加密? 无响应是否加密? 无cookie是否加密? 在“cookie”模块…

python数据分析需要学哪些,python数据分析要学多久

大家好,小编为大家解答python数据分析应该学什么软件的问题。很多人还不知道python数据分析需要什么基础,现在让我们一起来看看吧! 根据调查结果,十大最常用的数据工具中有八个来自或利用Python。Python广泛应用于所有数据科学领域…

STM32 FLASH 读写数据

1. 《STM32 中文参考手册》,需要查看芯片数据手册,代码起始地址一般都是0x8000 0000,这是存放整个项目代码的起始地址 2. 编译信息查看代码大小,修改代码后第一次编译后会有这个提示信息 2.1 修改代码后编译,会有提示…

物联网在制造业中的应用

制造业目前正在经历第四次工业革命,物联网、人工智能和机器人等技术进步正在推动行业的发展。研究表明,到2024年,全球制造商将在物联网解决方案上投资700亿美元,许多制造商正在实施物联网设备,以利用预测性维护和复杂的…

优化GitHub网站访问慢的问题

方法一、修改host文件解决 大型网站服务器都不会是只有一台服务器,而是多台服务器组成的集群一起对外提供服务。 使用站长工具测速,找一个速度比较快的服务器。 图中可以看到140.82.121.4这个ip比较快, 下面修改hosts: Mac 在 /etc/hosts 中&#x…

.net连接mysql,提示找不到请求的 .Net Framework Data Provider。可能没有安装

开发完成的.net程序需要连接mysql数据库,在个人电脑上运行没问题,别人运行时提示“提示找不到请求的 .Net Framework Data Provider。可能没有安装”。经过查询,安装Connector/NET 8.1.0,下载地址如下所示: https://d…

Mac OS minicom 无法设置921600问题

MacOS minicom 无法设置921600问题 介绍过程解决方案参考资料 介绍 minicom是Mac上一款非常好用的串口工具。本文假设你已经安装minicom,并且知道minicom的一般配置和使用方法。这是“MacOS minicom 无法设置921600”的解决问题记录。它在以下环境中设置成功&#…

【制作npm包1】申请npm账号、认识个人包和组织包

概述 在开发当中经常有一种现象,重复代码写了N多遍,再次写同样的逻辑就再次翻查以前的代码逻辑。效率低下且容易出错,封装一个npm包的价值也不仅仅是给别人用,封装一套属于自己或者本部门的npm包也是相当有必要。 也许经常看到一…

fastadmin 自定义按钮弹窗不是异步xhr提交

遇到一个奇怪的问题 按官方文档要求,js中也重新绑定事件了 但弹窗出来的表单还不是xhr提交,这为什么? 经过我不断测试发现,如上述的方法名不能带有下划线,蛇形大小写,否则一律不生效。 浪费了我一天半时…

小程序CSS button按钮自定义高度之后不居中

问题&#xff1a; 按钮设置高度后不居中 <view><button class"btn1" size"">Save</button> </view> page {font-size: 30rpx; }.btn1 {margin-top: 100rpx;height: 190rpx;background: linear-gradient(90deg, #FF8A06, #FF571…