jenkins+gitlab+harbor+maven自动化容器部署

一、gitlab安装配置

1.1、安装

由于比较懒啊!这里就直接使用docker安装了啊!
没事先更新一个yum源:yum update -y
整一个gitlab镜像:docker pull gitlab/gitlab-ce
运行一个gitlab容器:docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --name gitlab --restart always -v /home/local/gitlab_docker/gitlab:/etc/gitlab -v /home/local/gitlab_docker/logs:/var/log/gitlab -v /home/local/gitlab_docker/data:/var/opt/gitlab gitlab/gitlab-ce
确认容器是否启动成功:docker ps
在这里插入图片描述
参数简单说明:
要详细说明的自己去看官方文档啊!
-d:后台运行

-p:端口映射,宿主机端口:容器端口

–name: 给将要运行的容器命名

–restart always:docker启动的时候,也自行启动

-v:挂载目录,宿主机目录:容器目录

gitlab/gitlab-ce:要运行的镜像

1.2、修改gitlab.rb配置文件

vim /home/local/gitlab_docker/gitlab/gitlab.rb

修改成下面这样就好了呀!
在这里插入图片描述

1.3、重启配置

链接容器重启配置:docker exec -it gitlab gitlab-ctl reconfigure
这里需要的时间比较久,你忍耐一下
启动成功了,网页验证一下就好了
在这里插入图片描述

1.4、登录gitlab

查看root初始密码:docker exec -it gitlab cat /etc/gitlab/initial_root_password
在这里插入图片描述
好了用这个临时密码登录上后就自己去改密码吧!

1.5、修改clone端口

有没有发现一个小问题呀!当我们去clone的时候ssh的端口是对滴,但是http的端口不对,那应该怎么办了,这个简单啊!简单修改下配置文件就行了啊!

docker exec -it gitlab vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

在这里插入图片描述
重启gitlab:docker exec -it gitlab gitlab-ctl restart
OK,现在再去clone的话,http的路径也对了

二、安装harbor

大家没事可以参考我另外一篇文章啊!安装harbor
这里也简单安装一下吧!

2.1、安装docker-compose

安装:curl -L "https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
其实这里是三个小步骤啊!一是下载2.28.1版本、二是拷贝到/usr/local/bin/、三是重命名为docker-compose
赋权:chmod +x /usr/local/bin/docker-compose
验证:docker-compose -v
在这里插入图片描述

2.2、安装harbor

切换目录:cd /home/local/
下载安装包:wget https://github.com/goharbor/harbor/releases/download/v2.10.3/harbor-offline-installer-v2.10.3.tgz
解压:tar xzvf harbor-offline-installer-v2.10.3.tgz
拷贝配置文件:cp /home/local/harbor/harbor.yml.tmpl /home/local/harbor/harbor.yml
修改配置文件:vim /home/local/harbor/harbor.yml
在这里插入图片描述
安装harbor:/home/local/harbor/install.sh
启动harbor:docker-compose -f /home/local/harbor/docker-compose.yml restart

2.3、配置harbor

docker配置harbor私服:vim /etc/docker/daemon.json
在这里插入图片描述
重启生效:systemctl daemon-reload && systemctl restart docker&&docker-compose -f /home/local/harbor/docker-compose.yml restart
登录测试:docker login -u admin -p Harbor12345 http://10.10.30.34:8070
打标签:docker tag tomcat:latest 10.10.30.34:8070/test_public/image_test:v1
上传测试:docker push 10.10.30.34:8070/test_public/image_test:v1

三、jenkins

3.1、安装jenkins

参考官方文档
下载jenkins源:wget https://pkg.jenkins.io/redhat/jenkins.repo -O /etc/yum.repos.d/jenkins.repo --no-check-certificate
导入key:rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
安装jdk: yum install fontconfig java-17-openjdk -y
若jdk为安装成功则使用如下方案:
下载jdk:wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
安装jdk:yum -y install ./jdk-17_linux-x64_bin.rpm
修改环境变量:vim /etc/profile

export JAVA_HOME=/usr/java/jdk-17
export PATH=$JAVA_HOME/bin:$PATH

环境变量生效:source /etc/profile
安装jenkins: yum install jenkins -y

3.2、启动jenkins

开机自启:systemctl enable jenkins
启动jenkins:systemctl start jenkins

3.3、安装插件

Dashboard–>Manage Jenkins–>Plugins–Available plugins
选择安装一个Git Parameter给大家示范一下,其余的大家按需安装啊!
在这里插入图片描述
点击安装等待安装完即可啊!重启才能生效哦!我这个人比较懒,重启就是直接http://10.10.30.34:8080/restart

四、安装maven

切换目录:cd /home/local/
下载安装包:wget https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz
解压:tar xzvf apache-maven-3.9.8-bin.tar.gz
修改配置:vim apache-maven-3.9.8/conf/settings.xml
http://maven.aliyun.com/nexus/content/groups/public/
在这里插入图片描述
配置环境变量:vim /etc/profile

export MVN_HOME=/home/local/apache-maven-3.9.8/
export PATH=$MVN_HOME/bin:$PATH

环境变量生效:source /etc/profile

五、Jenkins配置使用

5.1、git上传到gitlab

为了方便测试呀!我在网上随便整理个开源的Java项目上传到gitlab,这个网上一大把,大家随意去搜啊!
初始化:git init
添加所有文件到本地仓库:git add .
配置邮箱:git config --global user.email "admin@example.com"
配置用户:git config --global user.name "root"
提交本地仓库:git commit -m "Initial commit"
添加GitLab仓库地址作为远程仓库:git remote add origin http://10.10.30.34:8090/root/test.git
推送代码到GitLab:git push -u origin master

5.2、jenkins工具配置

Dashboard–>Manage Jenkins–>System Configuration–>Tools
maven配置
在这里插入图片描述
JDK安装
在这里插入图片描述

git安装
在这里插入图片描述

5.3、item配置

新建item
在这里插入图片描述
配置Discard old builds
自己根据需求来啊!
在这里插入图片描述
配置This project is parameterized
新增String Parameter
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/07dd58aa4b03495c93382eff73c7a0fb.png
新增Git Parameter
在这里插入图片描述

编写脚本
流水线语法生产拉取gitlab代码
在这里插入图片描述

增加连接凭证
在这里插入图片描述
点击生成流水线脚本
在这里插入图片描述
流水线语法生产harbor验证
在这里插入图片描述

在这里插入图片描述
Pipeline script

pipeline {agent anystages {stage('pull source') {steps {checkout scmGit(branches: [[name: '*/${branch}']], extensions: [], userRemoteConfigs: [[credentialsId: 'fe750087-98f6-4d98-b62d-3e28e826c18f', url: 'http://10.10.30.34:8090/root/test.git']])}}stage('maven') {steps {sh ''' /home/local/apache-maven-3.9.8/bin/mvn clean package -DskipTests '''}}stage('docker_harbor') {steps {withCredentials([usernamePassword(credentialsId: '8e1d6054-68b1-4e85-b5a2-a444b2a1b5e6', passwordVariable: 'password', usernameVariable: 'username')]) {sh ''' docker build -f test.yml -t 10.10.30.34:8070/test_public/image_test:${Tag}  . '''sh ''' echo ${password} | docker login  -u ${username}   --password-stdin http://10.10.30.34:8070 '''sh ''' docker push 10.10.30.34:8070/test_public/image_test:${Tag} '''sh ''' docker images | grep 'image_test'| awk '{print $3}'|xargs docker rmi '''
}}}}}

5.3、构建

在这里插入图片描述

5.4、Build with Parameters 可能遇到的问题

maven内存不足

dd if=/dev/zero of=/swapfile bs=1M count=3190
mkswap /swapfile
swapon /swapfile

docker.sock: connect: permission denied
本人比较懒,直接777权限整上

chmod 777 /var/run/docker.sock

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

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

相关文章

函数定义、合约与面向对象(以太坊solidity合约)

函数定义、合约与面向对象(以太坊solidity合约) 1-函数定义、构造与多态2-事件日志3-面向对象特征 1-函数定义、构造与多态 创建合约就是创建类,部署合约就是实例化 合约的方法还支持多态 还能使用第三方的库进行开发 整个合约部署后&…

【第4章】Spring Cloud之Nacos单机模式支持mysql

文章目录 前言一、初始化1. 初始化数据库2. 修改配置文件 二、效果1. 重新启动2. 新增用户 总结 前言 在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具…

【devops】gitlab 实现cicd 实践

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

HarmonyOS页面跳转和页面间传值

IndexPage 定义一个参数类 export class RouterParams {src:stringconstructor(str:string) {this.src str} }点击按钮后,将创建的RouterParams 对象传递到第二页 Button($r(app.string.next)).fontSize(16).width(300).height(50).backgroundColor($r(app.color.…

Android 视频音量图标

attrs.xml <?xml version"1.0" encoding"utf-8"?> <resources><!--图标颜色--><attr name"ijkSolid" format"color|reference" /><!--喇叭底座宽度--><attr name"ijkCornerWidth" form…

WINUI或WPF灵活使用样式、控件模板、自定义控件、用户控件

在WINUI与WPF 中&#xff0c;控件模板&#xff08;ControlTemplate&#xff09;、样式&#xff08;Style&#xff09;、自定义控件&#xff08;CustomControl&#xff09;和用户控件&#xff08;UserControl&#xff09;都是构建复杂和灵活用户界面的重要工具&#xff0c;但它们…

【electron6】浏览器实时播放PCM数据

pcm介绍&#xff1a;PCM&#xff08;Puls Code Modulation&#xff09;全称脉码调制录音&#xff0c;PCM录音就是将声音的模拟信号表示成0,1标识的数字信号&#xff0c;未经任何编码和压缩处理&#xff0c;所以可以认为PCM是未经压缩的音频原始格式。PCM格式文件中不包含头部信…

ForCloud全栈安全体验,一站式云安全托管试用 开启全能高效攻防

对于正处于业务快速发展阶段的企业&#xff0c;特别是大型央国企而言&#xff0c;日常的安全部署和运营管理往往横跨多家子公司&#xff0c;所面临的挑战不言而喻。尤其是在面对当前常态化的大型攻防演练任务时&#xff0c;难度更是呈“几何级数”上升&#xff1a; 合规难 众…

安卓 mvp 的架构的详细介绍

MVP 架构介绍 MVP&#xff08;Model-View-Presenter&#xff09;是一种软件架构模式&#xff0c;常用于构建用户界面&#xff08;UI&#xff09;。它将应用程序的逻辑划分为三个部分&#xff1a;Model、View 和 Presenter。MVP 的主要目标是分离视图和业务逻辑&#xff0c;使代…

使用github actions构建多平台electron应用

1. 创建electron项目 使用pnpm创建项目 pnpm create quick-start/electron 2. 修改electron-builder.yml文件 修改mac的target mac:target:- target: dmgarch: universal 3. 添加workflow 创建 .github/workflows/main.yml 文件 name: Build/release Electron appon:work…

二、原型模式

文章目录 原型模式1 基本介绍2 实现方式深浅拷贝目标2.1 使用 Object 的 clone() 方法2.1.1 代码2.1.2 特性2.1.3 实现深拷贝 2.2 在 clone() 方法中使用序列化2.2.1 代码 2.2.2 特性 3 实现的要点4 Spring 中的原型模式5 原型模式的类图及角色5.1 类图5.1.1 不限制语言5.1.2 在…

8、添加第三方包

目录 1、安装Django Debug Toolbar Django的一个优势就是有丰富的第三方包生态系统。这些由社区开发的包&#xff0c;可以用来快速扩展应用程序的功能集 1、安装Django Debug Toolbar Django Debug Toolbar位于名列前三的第三方包之一 这是一个用于调试Debug Web应用程序的有…

小程序-5(vant组件+全局数据共享+分包+tabBar案例)

目录 1.使用npm包 小程序对npm的支持和限制 使用vant组件 使用CSS变量定制主题样式 API的promise化 2.全局数据共享 小程序中的全局数据共享方案 安装MobX相关的包 创建MobX的store实例 将Store中的成员绑定到页面中 在页面上使用Store中的成员 将Store中的成员绑定…

Python——使用Seaborn钻石数据可视化分析(2)

续 Python——使用Seaborn钻石数据可视化分析(1) 目录 📈 4、非数值变量描述性统计分析 1️⃣ 柱状图——分析钻石切工的情况 📍 sns.countplot —— 绘制柱状图、条形图 2️⃣ 箱线图——分析不同切工的钻石的价格情况 📍 sns.barplot —— 不同分类变量之间的数…

【论文阅读】Mamba: Linear-Time Sequence Modeling with Selective State Spaces

Mamba: Linear-Time Sequence Modeling with Selective State Spaces 论文&#xff1a;[2312.00752] Mamba: Linear-Time Sequence Modeling with Selective State Spaces 作者&#xff1a;Albert Gu 和 Tri Dao&#xff0c;分别来自卡内基梅隆大学机器学习系和普林斯顿大学计…

HarmonyOS ArkUi 唤起系统APP:指定设置界面、浏览器、相机、拨号界面、选择通讯录联系人

效果&#xff1a; 完整工具类&#xff1a; import { common, Want } from kit.AbilityKit; import { BusinessError } from kit.BasicServicesKit; import { call } from kit.TelephonyKit; import { promptAction } from kit.ArkUI; import { contact } from kit.Contacts…

docker 部署wechatbot-webhook 并获取接口实现微信群图片自动保存到chevereto图库等

功能如图&#xff1a; docker部署 version: "3" services:excalidraw:image: dannicool/docker-wechatbot-webhook:latestcontainer_name: wechatbot-webhookdeploy:resources:limits:cpus: 0.15memory: 500Mreservations:cpus: 0.05memory: 80Mrestart: alwayspor…

RabbitMQ学习实践二:MQ的实现

文章是本人在学习springboot实现消息队列功能时所经历的过程的记录&#xff0c;仅供参考&#xff0c;如有侵权请随时指出。 参考文章地址&#xff1a; RabbitMQ安装与入门_rabbitmq win11配置-CSDN博客 RabbitMQ入门到实战一篇文章就够了-CSDN博客 RabbitMQ系列&#xff08…

走进数组的奇妙之旅

引言&#xff1a; 在前几篇文章中&#xff0c;我们深入探讨了函数的奥秘。在讲述函数知识的过程中&#xff0c;我们邂逅了一个新的概念&#xff0c;你或许还记得在演示 strcpy函数时&#xff0c;出现的这行代码&#xff1a;char1[20]{0};。当时&#xff0c;你是否感到好奇&…

scp免密复制文件

实现在服务器A和服务器B之间使用scp命令免密互相传输文件 1. 在服务器A中免密复制到服务器B 1.1 生成服务器A的公钥私钥 #在服务器A中执行 ssh-keygen -t rsa -P ""命令执行完毕会在服务器A的 ~/.ssh 目录下生成两个文件&#xff1a;id_rsa 和 id_rsa.pub 1.2 拷…