CI/CD环境搭建
服务简介
- Gitlab
官网:https://about.gitlab.com/
GitLab
是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。Gitlab是被广泛使用的基于git的开源代码管理平台,基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理,Gitlab主要针对group和project两个维度进行代码和文档管理, 其中group是群组, project是工程项目, 一个group可以管理多个project, 可以理解为一个群组中有多项软件开发任务, 而一个project中可能包含多个branch,意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并
- Jenkins
官网:https://www.jenkins.io/
中文文档:https://www.jenkins.io/zh/doc/
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
- harbor
官网:https://goharbor.io/
Harbor 是一个开源的镜像仓库服务,用于容器镜像、Helm Chart 等符合 OCI 标准的 Artifact 的安全托管及高效分发,能够帮助您跨云原生计算平台(如 Kubernetes 和 Docker)一致且安全地管理 Artifact。
QingCloud Harbor 镜像仓库将 Harbor 制作成了 App,能直接在 AppCenter 进行一键部署,并提供了一个高可用、高安全、高性能的解决方案。
部署安装
Gitlab
rpm源:https://packages.gitlab.com/gitlab/gitlab-ce
1.创建部署目录及YAML
mkdir /data/gitlab
vim /data/gitlab/docker-compose-gitlab.yml
version: "3.6"
services:gitlab:container_name: gitlabimage: gitlab/gitlab-ce:14.1.8-ce.0restart: alwaysenvironment:TZ: Asia/ShanghaiGITLAB_OMNIBUS_CONFIG: |external_url 'http://192.168.1.241' #WEB站点URLgitlab_rails['time_zone'] = 'Asia/Shanghai' #时区gitlab_rails['smtp_enable'] = true #开启邮件服务gitlab_rails['smtp_address'] = "smtp.qq.com" #设置邮件服务器地址gitlab_rails['smtp_port'] = 465 #邮箱服务器端口gitlab_rails['smtp_user_name'] = "xxx@qq.com" #发件邮箱gitlab_rails['smtp_password'] = "xxxxxxxxxx" #发件邮箱密码gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = truegitlab_rails['gitlab_email_from'] = 'xxx@qq.com' #发件邮箱ports:- "181:80"- "122:22"- "1443:443"volumes:- ./data:/var/opt/gitlab- ./logs:/var/log/gitlab- ./config:/etc/gitlab
2.启动gitlab(需要初始化 启动会有点慢)
docker-compose -f docker-compose-gitlab.yml up -d
3.访问后台管理页面(初始root密码在config目录initial_root_password)
#查看root初始密码
cat /data/gitlab/config/initial_root_password
#登录后台
http://192.168.1.141:181

jenkins
下载地址:https://www.jenkins.io/download/
1.创建部署目录
mkdir /data/jenkins
2.创建docker-compose文件
vim /data/jenkins/docker-compose-jenkins.yml
version: '3'
services:jenkins:restart: alwaysimage: jenkins/jenkins:ltscontainer_name: jenkinsuser: rootprivileged: trueenvironment:- TZ=Asia/Shanghaiports:- '8080:8080'- '50000:50000'volumes:- /data/jenkins/jenkins_data/:/var/jenkins_home- /var/run/docker.sock:/var/run/docker.sock- /usr/bin/docker:/usr/bin/docker
3.启动jenkins
docker-compose -f docker-compose-jenkins.yml up -d
4.访问管理后台
http://IP:port
admin初始密码文件位置: /data/jenkins/jenkins_data/secrets/initialAdminPassword


harbor(离线安装包-v2.5.6)
官网:https://github.com/goharbor/harbor
注意: 安装时需关注对应版本的前置要求【服务器配置,docker版本,docker-compose版本等。】


1.下载离线安装包
mkdir /data/harbor/src
cd /data/harbor/src
wget https://github.com/goharbor/harbor/releases/download/v2.5.6/harbor-offline-installer-v2.5.6.tgz
2.解压离线安装包
cd /data/harbor/src
tar zxf harbor-offline-installer-v2.5.6.tgz
cd /data/harbor/src/habor
3.修改配置文件
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
hostname: 192.168.1.241 #本机IP或者域名
http:port: 80 #http端口
https:port: 443 #https端口,如果不需要注释掉此部分即可certificate: /your/certificate/path #ssl证书位置,本地目录绝对路径private_key: /your/private/key/path
harbor_admin_password: 123456 #后台admin初始密码
database:password: 123456 #设置数据库初始密码max_idle_conns: 100max_open_conns: 900
data_volume: /data/harbor/data #数据目录位置(本地目录绝对路径)
# Log configurations
log:level: info #日志级别local:rotate_count: 50 #日志文件个数rotate_size: 200M #单个日志大小location: /var/log/harbor #日志位置
###########其余配置保持默认即可
4.执行安装,等待安装完成即可
cd /data/harbor/src/habor
./install
无报错打印successfully即安装完成

5.访问后台管理界面(创建用户,创建项目,用户授权)
http://IP:Port

相关文章:
CI/CD环境搭建
服务简介 Gitlab 官网:https://about.gitlab.com/ GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。Gitlab是被广泛使用的基于git的开源代码管…...
API调试管理工具Postman下载及操作介绍
1.下载安装postman地址:https://www.getpostman.com/downloads/ 2.创建项目 3.创建请求API 然后点击save保存api 4.用一个变量保存主域名,方便后续操作 就类似下面的baseurl 5.创建新环境 6.添加变量(如添加本地测试环境url——ba…...
vue集成百度地图,实现关键字搜索并自定义覆盖物,保存成静态图片
vue集成百度地图,实现关键字搜索并自定义覆盖物 index.html引入百度地图js <script type"text/javascript" src"https://api.map.baidu.com/api?v2.0&typewebgl&akxxxxxxwMprS7jIfPt354VdgP"></script>vue页面代码 <…...
Java中的Stream流
一、介绍 1. Stream流的作用 结合了Lambda表达式,简化集合、数组的操作。 2. Stream流的使用步骤 ①先得到一条Stream流,并把数据放上去; 获取方式方法名说明单列集合default Stream<E> stream()Collection中的默认方法双列集合无无…...
前端UI怎么防止用户反复提交?
方法1:禁用按钮 用户点击“xxx”按钮后,先禁用按钮,防止用户多次点击;待请求完成后,再解禁按钮。 方法2:防抖(Debouncing) 防抖是一种技术,它可以延迟执行函数࿰…...
OpenHarmony游戏应用程序-实现的一个手柄游戏
介绍 本篇Codelab是基于TS扩展的声明式开发范式编程语言,以及OpenHarmony的分布式能力实现的一个手柄游戏。 说明: 本示例涉及使用系统接口,需要手动替换Full SDK才能编译通过。 完成本篇Codelab需要两台开发板,一台开发板作为游…...
Redis+Lua脚本+SpringAOP实现接口限流
提到限流,常规情况,可以通过spring-cloud-starter-alibaba-sentinel 或者 resilience4j-ratelimiter 组件完成,但是如果不借助现有组件让我们自己开发一套限流工作应该如何应对呢? 本次我们通过Redis + Lua 脚本来实现一个限流组件。 首先创建项目:redis-limit <?xml…...
【wpf应用8】如何让WPF Grid控件根据屏幕尺寸自动调整
简介: 在Windows Presentation Foundation(WPF)中,Grid控件是一个强大的布局工具,它允许开发者创建复杂且响应迅速的用户界面。在不同的设备和屏幕尺寸上保持良好的布局一致性是一个挑战。本文将介绍如何让Grid控件根据…...
掌握ChatGPT:如何用AI撰写高质量论文
ChatGPT无限次数:点击直达 掌握ChatGPT:如何用AI撰写高质量论文 在当今信息爆炸的时代,人们不仅需要大量信息,还需要这些信息的整理与创新。人工智能技术正是我们在这个信息化时代最强大的助手之一。ChatGPT是一款基于大型神经网络的语言生成…...
平衡隐私与效率,Partisia Blockchain 解锁数字安全新时代
原文:https://cointelegraph.com/news/exploring-multiparty-computations-role-in-the-future-of-blockchain-privacy; https://medium.com/partisia-blockchain/unlocking-tomorrow-outlook-for-mpc-in-2024-and-beyond-cb170e3ec567 编译࿱…...
【JavaScript】NPM常用指令指南
河水清清弯又长 姑娘水边浣霓裳 清风卷过白云旁 飞鸟载来春花香 河水清清弯又长 姑娘水边浣霓裳 清风卷过白云旁 朝霞换夕阳 重逢是梦乡 春潮悠悠送波浪 石桥湾下小舟荡 此去经年谁如常 难得人间笑一场 春潮悠悠送波浪 石桥湾下小舟荡 此去经年谁如常 故人心头上 地久天又长 …...
k8s-多容器Pod、容器保护策略、宽限期、最大生命周期、嵌入式脚本、多容器Pod、资源监控工具
资源对象文件 一、模板与帮助信息 1、资源对象文件优势 命令无法实现高级复杂的功能某些资源对象使用命令无法创建方便管理、保存、追溯历史 2、如何生成资源对象模板 资源对象 Pod 模板使用 run 生成 [rootmaster ~]# kubectl run myweb --imagemyos:nginx --dry-runcli…...
机器学习——线性回归(头歌实训)
头歌机器学习实训代码、答案,如果能够帮到您,希望可以点个赞!!! 如果有问题可以csdn私聊或评论!!!感谢您的支持 目录 第1关:简单线性回归与多元线性回归 第2关&#…...
Echarts 利用多X轴实现未来15天天气预报
Echarts 利用多X轴实现未来15天天气预报 UI 设计图 Echarts 实现效果 代码实现 代码分解 echarts 图表上下均显示数据 通过设置 grid.top 和 grid.bottom 设置白天和夜间天气展示区域 grid: {top: 36%,bottom: 36%,left: 5%,right: 5%}, 天气图标的设置 由于 axisLabel 的…...
[数据结构初阶]二叉树
各位读者老爷好,鼠鼠我现在浅浅介绍一些关于二叉树的知识点,在各位老爷茶余饭后的闲暇时光不妨看看,鼠鼠很希望得到各位老爷的指正捏! 开始介绍之前,给各位老爷看一张风景照,有读者老爷知道在哪里吗&#x…...
matlab和stm32的安装环境。能要求与时俱进吗,en.stm32cubeprg-win64_v2-6-0.zip下载太慢了
STM32CubeMX 6.4.0 Download STM32CubeProgrammer 2.6.0 Download 版本都更新到6.10了,matlab还需要6.4,除了st.com其他地方都没有下载的,com.cn也没有。曹 还需要那么多固件安装。matlab要求制定固件位置,然后从cubemx中也指定…...
Opencv面试题
1、OpenCV中cv::Mat的深拷贝和浅拷贝问题? 深拷贝:分配新内存的同时拷贝数据,当被赋值的容器被修改时,原始容器数据不会改变。浅拷贝:仅拷贝数据,当被赋值容器修改时,原始容器数据也会做同样改变。 深拷贝…...
Python连接MariaDB数据库
2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)【持续更新最新版】-CSDN博客 Python连接MariaDB数据库 一、安装mariadb库 pip install mariadb 二、连接…...
基于python+vue的ITS 信息平台的设计与实现flask-django-nodejs-php
伴随着我国社会的发展,人民生活质量日益提高。于是对系统进行规范而严格是十分有必要的,所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套信息平台,帮助交通局进行信息共享、交通信…...
MediatR 框架使用FluentValidation对Comand/Query进行自动拦截验证
简介 目录 简介 1. MediatR项目框架 2. 实现步骤 步骤 1:编写管道行为 1. query 查询的管道 2. command命令的管道 步骤 2:注册验证器和管道行为 步骤 3:定义命令类 步骤 4:定义处理程序 步骤 5:编写命令验证器…...
HagiCode Desktop 混合分发架构解析:如何用 PP 加速大文件下载成
一、Actor 模型:不是并发技巧,而是领域单元 Actor 模型的本质是: Actor 是独立运行的实体 Actor 之间只通过消息交互 Actor 内部状态不可被外部直接访问 Actor 自行决定如何处理收到的消息 Actor 模型真正解决的是: 如何在不共享状…...
收藏!小白程序员快速入门大模型:什么是AI Agent?
本文用简洁语言定义AI Agent为“有目标、会思考、能自己调用工具干活”的AI,以Deepseek和ChatGPT为例。文章详细介绍了Agent的核心能力(记忆、自主规划、行动/工具调用)及类型(编程、个人助理、内容生成等)。重点解析了…...
5个核心技巧:用AKShare金融数据接口库实现量化投资自动化
5个核心技巧:用AKShare金融数据接口库实现量化投资自动化 【免费下载链接】akshare AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库 项目地址: https://gitcode.com/gh_mirrors/aks…...
2279 上市公司跨国供应链【存续力】(Sustainability) 指标(2004.07-2026.02)
数据简介测度微观合作黏性与“沉没成本”的度量衡 存续力(Sustainability)衡量了一段供需关系在走向彻底“死亡”之前,曾经拥有过的生命长度。在国际贸易网络中,存续时间的长短反映了中外企业间的合作黏性、技术锁定效应和信任深度…...
UniCloud前端网页托管+阿里云:如何绕过小程序审核,用H5快速迭代你的应用?
UniCloud阿里云混合开发实战:H5动态更新与小程序无缝整合方案 微信小程序审核周期长、更新受限是许多开发者面临的痛点。本文将介绍一种创新解决方案:通过UniCloud前端网页托管结合阿里云域名服务,构建可动态更新的H5应用,再借助小…...
Go语言怎么做SSE推送_Go语言Server-Sent Events教程【速学】
Go写SSE handler需设Content-Type和Cache-Control头、逐行写data:并双换行、每次调Flush;须禁用Read/WriteTimeout、设IdleTimeout;用chansync.Map实现安全广播,监听r.Context().Done()防泄漏。Go怎么写一个能发SSE的HTTP handlerGo原生不带S…...
吃灰安卓机变身 OpenClaw 服务器 — 完整手册乙
前言 在使用 kubectl get $KIND -o yaml 查看 k8s 资源时,输出结果中包含大量由集群自动生成的元数据(如 managedFields、resourceVersion、uid 等)。这些信息在实际复用 yaml 清单时需要手动清理,增加了额外的工作量。 使用 kube…...
FLUX.2-klein-base-9b-nvfp4系统资源监控与优化:保障稳定运行
FLUX.2-klein-base-9b-nvfp4系统资源监控与优化:保障稳定运行 最近在星图GPU平台上部署了FLUX.2-klein-base-9b-nvfp4模型,跑起来效果确实不错。但用了一段时间后,我发现一个问题:模型服务偶尔会变慢,甚至卡住不动。一…...
Bypass Paywalls Clean:信息获取工具的技术解析与实践指南
Bypass Paywalls Clean:信息获取工具的技术解析与实践指南 破解信息壁垒:智能识别系统工作原理解析 在学术研究中,当你尝试访问最新的行业报告时,突然弹出的付费提示往往中断研究流程;专业人士在跟踪领域动态时&#x…...
【信息科学与工程学】【管理科学】第六十篇 企业运营运作表02
OP-FI-091 ~ OP-FI-100 公司金融高阶模型详解(续)OP-FI-091:反向莫里斯信托模型编号类型子类领域运营运作模型模型的所有参数/特征/常量/变量列表和字段说明模型的逐步推理思考的每一步的数学方程式建模时序和流程和周期精度/误差…...
