GitLab CI/CD系列教程(一)

news2024/9/21 18:55:58

来自:GitLab CI/CD系列教程(一):Docker安装GitLab_哔哩哔哩_bilibili

1. 创建虚拟机并连接Xterm

 创建一个4G内存的虚拟机,否则很容易启动不了,报502

虚拟机的创建看这篇:

VMware16的安装及VMware配置Linux虚拟机_爱吃咖喱鸡的博客-CSDN博客https://blog.csdn.net/m0_49879527/article/details/124405332虚拟机创建好了以后修改一下ssh.service的端口号为60022,因为Gitlab需要占用22端口

步骤如下:

vi /etc/ssh/sshd_config

把 #Port 22修改为Port 60022 ,按下i键,修改后按下esc键,输入:wq保存并退出

修改以后重新启动一下:

systemctl restart sshd

Xterm连接看这篇:

Linux操作系统----安装使用VMware和MobaXterm_素心如月桠的博客-CSDN博客Xtermhttps://blog.csdn.net/m0_47010003/article/details/125245319

2. 安装docker

 安装Docker步骤:

 Docker_素心如月桠的博客-CSDN博客一、安装Docker♦️ 1.下载关于Docker的依赖环境在Xterm中输入以下代码安装依赖环境 回车yum -y install yum-utils device-mapper-persistent-datalvm2使用yum工具下载yum是软件包管理工具通过 执行 man yum可以查看yum的帮助信息♦️2.设置一下下载Docker的镜像源依赖环境下载完毕以后,设置下载的镜像源,如果不设置,会默认去Docker的官方下载,但是官方的服务器在国外,下载会比较缓慢,设置下载国内的镜https://blog.csdn.net/m0_47010003/article/details/127775185

3. 使用docker安装gitlab

 第一步拉取镜像:gitlab社区版

docker pull gitlab/gitlab-ce

 docker images  #查看镜像

 发现刚刚下载的gitlab社区版镜像:gitlab/gitlab-ce

 第二步docker run命令运行容器

sudo docker run -d -p 443:443 -p 80:80 -p 22:22 --name gitlab --restart always -v /opt/docker_gitlab/config:/etc/gitlab -v /opt/docker_gitlab/logs:/var/log/gitlab -v /opt/docker_gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest

docker ps -a  # 查看运行的容器

 发现已经成功运行,搭建成功以后就可以去浏览器访问了,默认是80端口。

docker logs -f 8b # 根据容器id查看gitlab的实时日志

 输入以上命令,如果出现以下代码,说明运行成功!

 在浏览器输入网址

http://192.168.197.130:80

注意是http,192.168.197.130与Vmware虚拟机中输入ip a显示的ip地址一致,80是容器启动时docker run命令中-p属性指定的端口号

访问成功后,因为我是隔了一段时间才写的文章

忘记管理员密码了

Docker中安装了gitlab,忘记了管理员密码,进行管理员密码重置 - 安能倚天屠龙 - 博客园 (cnblogs.com)https://www.cnblogs.com/zhang-yawei/p/12692493.html

依次输入以下命令,修改用户名为root的用户的密码为12345678 

修改成功后输入两次exit,退出 

再次登录成功。

登录成功以后我们创建一个项目testci

 然后我们去idea中 创建一个项目并上传到gitlab这个testci项目中

使用IntelliJ IDEA创建Maven项目并上传项目至gitlab等远程仓库_素心如月桠的博客-CSDN博客_maven项目上传giticon-default.png?t=M85Bhttps://blog.csdn.net/m0_47010003/article/details/128023709创建成功后我们在idea项目的根目录下新建.gitlab-ci.yml文件

编写.gitlab-ci.yml文件(注意前面有个“.”)

 回到idea中,在当前项目路径下右键新建.gitlab-ci.yml文件。

 在.gitlab-ci.yml文件中输入如下内容:

         在- echo后面输入什么在gitlab上面运行就会输出什么

 这里我只是.gitlab-ci.yml文件只是示例,具体yml文件内容很多我就不截图了。

 添加完.gitlab-ci.yml文件后再次commit,push

 

 push成功:

 

进入GitLab中,查看。


 

二、Docker安装GitLab Runner

1.gitlab-runner

在安装前先来解释说明一下什么是流水线

2. pipeline【流水线】

每次提交代码就会触发流水线, 

点击第一条流水线可以看到如下图所示:

 一条流水线的4个阶段stage和任务 job

gitlab只是一个代码管理平台,正在的执行环境是gitlab-runner里面

所有的ci/cd操作都是在gitlab-runner里面执行的,gitlab-runner就是为ci/cd和流水线提供一个运行环境。

ci/cd就是我们提交代码以后可以自动的集成,自动部署并执行一些任务,而gitlab-runner就是流水线就是一个自动化的基础环境。stage的话意思是阶段,定义同一组的任务,job是执行的最小单元。
上面说的.gitlab-ci.yml文件就是定义流水线的具体执行的内容的

接下来安装gitlab-runner

在Xterm中输入以下代码:没有镜像会自动去拉取,所以不用push镜像,直接使用docker run命令

docker run -d --name gitlab-runner --restart always -v /src/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest

docker ps查看,可以看到gitlab-runner的Ports,对外暴露的端口是空的,这是因为gitlab-runner不对外提供服务

 接下来注册gitlab-runner

docker exec -it gitlab-runner gitlab-runner register

 以上划红线的内容就是我们要输入的

第一个url地址http://192.168.197.130/和令牌token去gitlab中复制

 复制上面的url和token,回到Xterm中右键paste上

接下来的描述随便写,然后是tag,写testci,执行器executor,写shell,回车就可以成功注册

回到gitlab中查看,如下图: 

 

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

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

相关文章

基于java+ssm+vue+mysql的网上书店

项目介绍 本网上系统是针对目前网上的实际需求,从实际工作出发,对过去的网上系统存在的问题进行分析,结合计算机系统的结构、概念、模型、原理、方法,在计算机各种优势的情况下,采用目前最流行的B/S结构和java中流行的…

从0开始搭建vue2管理后台基础模板

网站主要完成:侧边菜单栏、页面标签卡、内容栏 源代码gitee地址:https://gitee.com/zhao_liangliang1997/navigation-bar 一、起步 1、创建vue项目 vue create 项目名2、引入element 3、其他安装 1、首先需要安装如下 cnpm install vuex cnpm install…

DockerCompose安装、使用 及 微服务部署实操

1 什么是DockerCompose DockerCompose是基于Compose文件帮助我们快速的部署分布式应用。 解决容器需手动一个个创建和运行的问题! DockerCompose本质上也是一个文本文件,其通过指令定义集群中的每个容器如何运行。我们可以将其看做是将多个docker run…

Ansible 自动化运维工具的使用

目录 一、Ansible简介 二、Ansible 的安装和使用 1.下载 2.使用 三、Ansible命令和模块 1.命令格式 2.命令行模块 (1)command 模块 (2)shell 模块 (3)cron 模块 (4)user …

多线程 3

多线程 3 : 文章目录1.线程安全2. 产生线程安全的原因3. synchronized - 加锁操作4.可重入5.死锁问题6. volatile 关键字7.wait 和 notify1.线程安全 为啥会出现线程安全 ?   罪魁祸首,还是多线程的抢占式执行, 正因为抢占式执行&#xff0c…

Java项目:SSM场地预订管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 用户角色包含以下功能: 按分类查看场…

【车载开发系列】UDS诊断---通信控制($0x28)

【车载开发系列】UDS诊断—通信控制($0x28) UDS诊断---通信控制($0x28)【车载开发系列】UDS诊断---通信控制($0x28)一.概念定义二.实现原理三.应用场景四.子功能五.报文格式1)请求报文2&#xf…

自动导入指定文件夹内的文献到 Endnote 中

简介 最近正着手写一篇综述文章,来整体把握下自己研究领域的历史、方法、最新进展与趋势。由于需要对相关文献进行搜集、阅读和分类。庄小编使用 EndNote 来进行管理文献。 在使用较长时间后,整理了几个超级好用的小技巧。比如:自动导入指定…

pikachu靶场-upload-速通

upload-速通client checkMIME typegetimagesizeclient check 最简单的,先上传一张含有一句话木马的图片,抓包修改图片后缀为php,放包发送就行 访问并确认该上传文件是否以php形式解析 蚁剑直连: MIME type 后端php检查上传文…

基于MSER的高速公路交通标志提取matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 自然场景下的文本检测是自然场景图像信息提取的基础,在车牌识别、实时翻译、图像检索等领域具有广泛的应用价值及研究意义。基于连通区域的方法是自然场景文本检测中最为常见的方法,其中最大稳定…

[附源码]Python计算机毕业设计SSM街舞公司管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Java Script 内置对象(三) --------- Array 对象

判断是否为数组有两种方式,instanceof 和 Array.isArray( 参数 ),两者判断方法均为如果是数组则返回 true,不是数组则返回 **false,**其中第二个方法为H5新增加的方法 var arr[]; var obj{}; console.log(arr instanceof Arra…

微服务入门案例

boot与cloud版本 springboot:提供了快速开发微服务的能力 springcloud提供了微服务治理的能力(服务注册与发现、服务降级、限流、熔断、网关、负载均衡、配置中心...),为微服务开发提供了全家桶服务 springboot的版本查看地址:Spr…

云原生之Docker简介和环境准备

Docker简介一、主机环境二、Docker 安装三、Docker简介3.1、Docker解决的问题3.2、Docker技术边界3.3、Docker带来的改变3.4、Docker和虚拟机的区别3.5、Docker 架构图3.6、直观感受client请求server总结后言一、主机环境 (1)ubuntu-20.04.4-live-serve…

【torch.utils.data】 Dataset和Dataloader的解读和使用

文章目录torch.utils.data前言DatasetDataloader实践参考torch.utils.data 前言 Pytorch中的 torch.utils.data 提供了两个抽象类:Dataset 和 Dataloader。Dataset 允许你自定义自己的数据集,用来存储样本及其对应的标签。而 Dataloader 则是在 Datase…

LTspice XVII > Transformer 变压器仿真

目录 第①步设置 第②步设置 第③步设置 第④步设置 输出结果 最近在看“无线电基础电路实作修订版 [(美)西尔弗 著] 2014年版”这本书,打算好好修炼下无线电方面的基础知识,让自己更加牛逼一些,工作中偶尔可以装…

指标与标签的区别?

概述 在公司数据建设过程中,经常会使用和提到指标和标签,但是很多小伙伴对于两者的区别确不能讲清楚。实际上标签与指标一样,是理解数据的两种方式,在赋能业务上,两者同样重要。接下来将结合自身的理解,从…

Java项目:SSM共享汽车租赁平台

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 管理员角色包含以下功能: 管理员登录…

ElementUI组件-日期时间控件设置禁用日期

ElementUI组件-日期时间控件禁用指定日期 主要属性 查看官网,可以看到有个叫做picker-options的组件属性,没错,就是借助他来完成禁用指定日期的操作,如下 该属性值传入的是一个对象,对于时间选择器、日期选择器、日…

[阶段4 企业开发进阶] 3. 消息队列--RabbitMQ

文章目录1 消息队列1.1 MQ的概念基本介绍使用原因MQ分类如何选择1.2 RabbitMQRabbitMQ核心工作原理安装教程1 消息队列 1.1 MQ的概念 基本介绍 MQ本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已是一种跨进程的通信机制&#xff0…