当前位置: 首页 > news >正文

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Eureka基本概念
  • 【NLP实战】基于TextCNN的新闻文本分类
  • 5G mmWave PAAM 开发平台
  • Python爬虫实战 | 爬取携程网景区评论|美食推荐|景点列表数据
  • LeetCode岛屿的最大面积(深度搜索)/什么是深搜,简单案例回顾图用邻接表实现图的深度优先遍历。
  • 深度学习入门——与学习相关的技巧
  • 学习记录--GPT
  • QT获取电脑网卡IP等信息
  • Spring boot 运行环境搭建之Spring Tools 4 for Eclipse
  • STM32、Spring Boot、MQTT和React Native:智能停车管理系统的全栈开发详解(附代码示例)
  • react-draft-wysiwyg API
  • Nacos 服务发现(订阅)源码分析(服务端)
  • 数据仓库事实表
  • 【微服务实战之Docker容器】第六章-复杂安装(Mysql主从Redis集群)
  • 代理伺服器分類詳解
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • create-react-app项目添加less配置
  • Docker: 容器互访的三种方式
  • idea + plantuml 画流程图
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • js数组之filter
  • linux学习笔记
  • Spring核心 Bean的高级装配
  • 关于for循环的简单归纳
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 前端面试之CSS3新特性
  • 入手阿里云新服务器的部署NODE
  • 深度学习入门:10门免费线上课程推荐
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 小李飞刀:SQL题目刷起来!
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #pragma pack(1)
  • (1)无线电失控保护(二)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (四) 虚拟摄像头vivi体验
  • (一)Linux+Windows下安装ffmpeg
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)C#调用WebService 基础
  • (转)jQuery 基础
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (转载)深入super,看Python如何解决钻石继承难题
  • ./configure,make,make install的作用
  • .mysql secret在哪_MySQL如何使用索引
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET delegate 委托 、 Event 事件
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET导入Excel数据