通过配置 GitLab 自动触发项目自动化构建与部署

【干货防踩坑/全图文分步/Gitlab镜像仓库自动同步】Gitlab CE/EE镜像仓库的配置技巧(含ssh/密码两验证方法) 众所周知,Gitlab是个好东西。为什么呢?GitHub没有的功能,他全有了。更何况还可以私有部署。这两天自己部署了Gitlab,然后想把自己的项目和Github同步,于是乎有了如下的故事。 阅读详情

一、环境准备:Docker、Jenkins、GitLab 部署(国内镜像加速)

        1.Docker 国内镜像源配置

        确保 Docker 拉取镜像时走国内加速,编辑 /etc/docker/daemon.json:

[root@host1 ~]# vi /etc/docker/daemon.json
[root@host1 ~]# cat /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://9fbd5949cbc94e4a9581e33b9077c811.mirror.swr.myhuaweicloud.com",
    "https://jnh8ca4k.mirror.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://docker.mirror.aliyuncs.com",
    "https://reg-mirror.qiniu.com",
    "https://f1361db2.m.daocloud.io",
    "https://hub-mirror.c.163.com"
  ],
  "insecure-registries": ["192.168.197.9:5001"],
  "live-restore": true
}

重启 Docker 使配置生效:
[root@host1 ~]# systemctl daemon-reload
[root@host1 ~]# systemctl restart docker
[root@host1 ~]# 

        2.启动 GitLab(国内镜像版,支持中文)

        使用国内维护的 twang2218/gitlab-ce-zh 镜像(中文社区版,拉取更快),并映射端口 / 持久化数据:

# 创建数据持久化目录
[root@host1 ~]# mkdir -p /srv/gitlab/{config,logs,data}

# 启动 GitLab 容器(HTTP 用 8081 端口,避免与 Jenkins 冲突)
[root@host1 ~]# docker run -d \
  --name gitlab \
  -p 8443:443 -p 8081:80 -p 2222:22 \
  -v /srv/gitlab/config:/etc/gitlab \
  -v /srv/gitlab/logs:/var/log/gitlab \
  -v /srv/gitlab/data:/var/opt/gitlab \
  twang2218/gitlab-ce-zh:latest
Unable to find image 'twang2218/gitlab-ce-zh:latest' locally
latest: Pulling from twang2218/gitlab-ce-zh
8ee29e426c26: Pull complete 
6e83b260b73b: Pull complete 
e26b65fd1143: Pull complete 
40dca07f8222: Pull complete 
b420ae9e10b3: Pull complete 
a218309dd589: Pull complete 
5c60fd7ba0ce: Pull complete 
659c2144b5a3: Pull complete 
8289bbac0d0e: Pull complete 
31bbd150e8a7: Pull complete 
9114e78243fa: Pull complete 
e242e5cd1314: Pull complete 
0a079dc3f92c: Pull complete 
f0e195b09fd2: Pull complete 
6e23346e2f58: Pull complete 
91f00659be69: Pull complete 
a1031bcc5b2c: Pull complete 
e3074327c7b1: Pull complete 
a917618dbe42: Pull complete 
Digest: sha256:62686b74c6fca5ece8ed582d03a126c5988423dd8a19ce70e9a22357ffcaf1c8
Status: Downloaded newer image for twang2218/gitlab-ce-zh:latest
31cf4cf2bc3f76978e0ced18465a3c7197de6e5f74c852ddf5d76d7549dbe5af

        3.启动 Jenkins(国内加速拉取官方镜像)

        使用 jenkins/jenkins:lts(长期支持版),通过国内镜像源加速拉取:

# 创建 Jenkins 数据持久化目录
[root@host1 ~]# mkdir -p /srv/jenkins_home
[root@host1 ~]# chown -R 1000:1000 /srv/jenkins_home    # Jenkins 容器内用户为 uid=1000

# 启动 Jenkins 容器(映射 8080 端口)
[root@host1 ~]# docker run -d \
  --name jenkins \
  -p 8080:8080 -p 50000:50000 \
  -v /srv/jenkins_home:/var/jenkins_home \
  jenkins/jenkins:lts
Unable to find image 'jenkins/jenkins:lts' locally
lts: Pulling from jenkins/jenkins
8fb375ec14f3: Pull complete 
c7acc196d9db: Pull complete 
c9a178fb1e40: Pull complete 
59c3eb56f065: Pull complete 
5ad06dc8d2bc: Pull complete 
5fe83599b627: Pull complete 
1d17e189ff23: Pull complete 
18238f4d9e48: Pull complete 
7c1a19381ac9: Pull complete 
195624e01063: Pull complete 
e4441ae29535: Pull complete 
4f19f207bd6e: Pull complete 
Digest: sha256:ace160331258aeff24581038e63ec5b5e8e969cebc9582a5ac7f0ed9fd20043b
Status: Downloaded newer image for jenkins/jenkins:lts
6ab5e11b7982d6a476dd4b3ce8ccb9c8bf2cbeeb5fcddfe15ccfded8e07fc81f

二、Jenkins 配置:项目、触发器、插件

        1.初始化 Jenkins   

        (详细过程请查看 部署 Jenkins 服务器-优快云博客)

  • 访问 http://<宿主机IP>:8080(如 http://192.168.197.9:8082)。

  • 首次启动需获取初始密码:

[root@host1 ~]# docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
312dd6142d0b4e2ab0fb590782a85af9
  • 输入密码后,选择「安装推荐插件」,等待插件安装完成,创建管理员用户。

        2.安装必要插件

        进入「系统管理」→「插件管理」→「可选插件」,搜索并安装:

  • Git Plugin(Git 源码管理支持)
  • GitLab Plugin(GitLab 触发与认证支持)
  • Pipeline Plugin(流水线支持,可选,若用 Pipeline 语法)

        3.配置 GitLab 凭据

        进入「凭据」→「系统」→「全局凭据」→「添加凭据」:

  • 类型选「GitLab API 令牌」。
  • 前往 GitLab(http://<宿主机IP>:8081),点击「个人头像」→「设置」→「访问令牌」,创建令牌(勾选 api 权限),复制令牌内容。
  • 在 Jenkins 凭据中,「API 令牌」填写刚复制的内容,「ID」自定义(如 gitlab-token),保存。

        4.创建 Jenkins 项目(以 Maven 项目为例)

  • 点击「新建 Item」→ 选择「构建一个 Maven 项目」→ 输入项目名(如
GitLab 中国发行版如何设置镜像拉取策略? 极狐GitLab CI/CD 作业中容器镜像拉取策略的设置方法。 阅读详情

相关推荐

Jenkins+Docker+GitLab自动化部署springBoot项目

Jenkins+Docker+GitLab自动化部署springBoot项目安装DockerDocker安装Jenkins安装启动Jenkins配置JDK配置配置Maven下载Maven插件配置自动化部署 安装Docker 之前有专门介绍这里就不赘述了 链接: docker安装 Docker安装Jenkins 安装 安装 docker pull jenkins/jenkins 查看镜像 docker images 注意:nginx和centos镜像本教程无关 启动 在data目录下创建jenkin

qq_43539962的博客 2098

gitlab+jenkins自动化部署

搭建jenkins+gitlab自动集成、打包、部署

ALLLiu的博客 1万+

自动化运维记录之GitLab CI/CD 自动化部署入门教程

GitLab CI/CD 自动化部署入门 纯干货分享,小白也能看懂的gitlab CI/CD 自动化部署

Harry_z666的博客 1898

gitlab+jenkins自动化部署vue项目

gitlab+jenkins自动化部署vue项目1. 环境搭建1.1 gitlab安装1.1.1 gitlab-ee安装1.1.2 相关配置以及命令1.1.3 通知邮箱配置1.1.4 开放8888端口1.2 jenkins安装(前提需要java环境)2. 自动化配置2.1 本地创建vue项目并提交到gitlab2.2 jenkins配置2.3 gitlab钩子配置 1. 环境搭建 1.1 gitlab安装 1.1.1 gitlab-ee安装 环境安装: sudo yum install -y curl po

Heasdfghjkl的博客 1078

Jenkins安装与GitLab项目部署

本文主要讲述如何安装Jekins和部署GitLab项目。

yizhiweiyan的博客 747

Jenkins自动构建GitLab分支项目

jenkins自动化构建GitLab项目到docker容器

Fengkx518的博客 2033

Gitlab 软件库和镜像库

打开 Node JS 项目,编辑 package.json 文件,修改项目名称 加入 scope 例如 "name": "demo" 改为 "name": "@netkiller/demo",设置一个版本号 "version": "0.0.1",然后将 "private": true 改为 "private": false。修改配置 /etc/gitlab/gitlab.rb 文件,将 registry_external_url 的值修改为 http://registry.netkiller.cn。

1042

GitLab CI/CD 自动化部署流程详解

本文通过GLDisplayManager项目实例,详细讲解了如何设置和优化GitLab CI/CD配置文件。初始配置包含构建、测试和部署三个阶段,使用Maven和OpenJDK 17。针对部署阶段不执行、构建测试冗余等问题,提出了优化方案:更新分支条件、简化流程、升级Maven版本至3.9.0并确保TLSv1.3安全性。最终配置文件实现了高效的自动化构建、测试和部署流程,有效提升开发效率并减少人为错误,为类似项目提供了可参考的CI/CD实践方案。

m0_74337424的博客 164

微信小程序返回按钮的隐藏玩法:用onShow实现数据自动刷新(附完整代码)

本文深入探讨了微信小程序中用户点击返回按钮后,如何利用onShow生命周期函数实现页面数据的自动刷新。文章对比了onLoad与onShow的差异,提供了从基础的本地存储标记到进阶的EventChannel事件通信,再到状态管理库的多种解决方案,并附有完整的代码示例,帮助开发者构建流畅的用户体验。

agile9scrum的博客 925

OTN传送网实战指南:从光层到电层的完整架构解析(附配置示例)

本文深入解析OTN传送网从光层到电层的完整架构,涵盖关键组件、技术实现及配置示例。通过高速公路与光传送网的类比,详细介绍了光层超宽传输管道构建、电层业务调度核心引擎以及控制平面智能运维实战。附有典型组网方案与故障排查指南,助力网络工程师高效部署与维护OTN传送网。

tomato的博客 684

【2021末九软工边缘人保研】川大-中科院网络中心-华师夏令营+哈工大本-中科院网络中心-西交-厦大-中山-武大-北航预推免

2021末九软工边缘人保研记录一、写在前面二、个人背景 一、写在前面 2020年计算机保研可谓是诸神黄昏,卷的头破血流(指我等菜鸡)。疫情的原因,今年的夏令营和预推免基本全部改为线上,机试取消,能不能拿到offer基本完全取决于背景以及面试表现(当然也有个别头铁非要机试,甚至笔试的学校)。大佬们offer收割不停,我等边缘人只能看着一封封拒信发呆。 这种情况下,只有985 Rank5%以及211 Rank2%之前的大佬能够较为轻松地拿到面试入场券。贴一个上交电院夏令营要求你们感受一下: 预推免相比起夏令营

weixin_43222706的博客 4235

初识数据结构之入门必懂——线性表(顺序表)

本文将介绍数据结构中的线性表与线性表中最简单的结构——顺序表

m0_64705485的博客 905

Python爬虫实战:利用Playwright和反反爬技术高效抓取Bloomberg金融数据

用户行为分析(鼠标移动、点击模式)请求头检测IP频率限制WebSocket通信验证Canvas指纹识别我们的爬虫需要模拟人类行为,使用代理IP池,并合理控制请求频率。

2201_76125261的博客 1020

C++和OpenGL实现3D游戏编程【连载6】——不规则图形的纹理贴图(附源码)

上一节我们讨论了纹理贴图的相关基础操作,但上一节的纹理贴图操作基本上都是规则图形,包括圆形和球形虽然复杂一点,但是它也是规则的。这一节课我们要讨论一下,怎么在不规则图形上纹理贴图,就比如文章下图的心形纹理贴图,以及纹理的平移、旋转、放大缩小功能。

zhooyu的博客 1308

基于EB工具的TC3xx_MCAL配置开发05_ADC模块硬件Pwm触发Demo配置

基于EB工具,硬件Pwm触发ADC采集Demo配置详细介绍

initiallizer的博客 3509

《QGIS快速入门与应用基础》161:面要素顶点编辑与形状调整

本文系统讲解了QGIS中面要素顶点编辑与形状调整的核心操作。首先明确了顶点编辑的适用场景与核心概念,强调需满足图层类型、编辑模式、要素选择等六大前提。详细介绍了编辑顶点工具(F2键)的激活路径及配套辅助工具,通过耕地地块修正案例,分步骤演示顶点移动、添加(双击/工具栏)、删除(Delete键)三大基础操作。同时提供捕捉工具开启、画布缩放等实用技巧,帮助用户高效完成面要素的精细化调整,解决实际工作中的形状偏差问题。全文图文结合,步骤清晰,适合GIS新手快速掌握面要素编辑的核心技能。

LuckyHanMo的博客 485

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: 使用 Jenkins 的流水线项目实施 CI/CD
下一篇: 基于 kind 部署 Kubernetes 集群
Lin_Aries_0421
博客等级 码龄3年 271粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值