jenkins 自动化部署Springboot 项目

一、安装docker

1.更新yum命令

yum -y update

2.查看机器有残留的docker服务,有就卸载干净

查看docker 服务

rpm -qa |grep docker

卸载docker

sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

查看已经安装的docker

yum list installed | grep docker
[root@iZ2vchn8sk983jcslvp36fZ ~]# yum list installed | grep docker
containerd.io.x86_64                 1.3.7-3.1.el8                           @docker-ce-stable
docker-ce.x86_64                     3:19.03.13-3.el8                        @docker-ce-stable
docker-ce-cli.x86_64                 1:19.03.13-3.el8                        @docker-ce-stable

依次删除

yum -y remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64

安装依赖软件包

sudo yum install -y yum-utils

设置稳定仓库

清华大学源
$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

安装 Docker Engine-Community

查看可用版本

yum list docker-ce --showduplicates | sort -r

指定安装

sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
例如安装21.6.2版本
sudo apt-get install docker-ce=21.6.2 docker-ce-cli=21.6.2 containerd.io

配置源,不配置的话拉取不了镜像

vim /etc/docker/daemon.json

文件内容,配了还是有点慢,可以淘宝买一个源

{
  "registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}

重启

systemctl daemon-reload
systemctl restart docker

设置开机自动启动

systemctl enable docker.service

二、docker 安装jenkins

1.拉取jenkins最新镜像

docker pull jenkins/jenkins

2.查看镜像

docker images

3.创建宿主机挂载目录

mkdir -p /data/jenkins/jenkins_home

4.运行容器

docker run -d -p 18080:8080 -p 50000:50000 \
  -v /data/jenkins/jenkins_home:/var/jenkins_home \
  -v /etc/localtime:/etc/localtime \
  -v /usr/bin/docker:/usr/bin/docker \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --restart=on-failure \
  -u 0 \
  --name jenkins \
  jenkins/jenkins

命令解释

docker run: 运行一个新的容器。
-d: 后台运行容器 (detached mode)。
-p 18080:8080: 将宿主机的 18080 端口映射到容器的 8080 端口,这是 Jenkins 的 Web 界面默认端口。
-p 50000:50000: 将宿主机的 50000 端口映射到容器的 50000 端口,这是 Jenkins 用于与代理通信的端口。
-v /data/jenkins/jenkins_home:/var/jenkins_home: 将宿主机的 /data/jenkins/jenkins_home 目录挂载到容器的 /var/jenkins_home 目录,这是 Jenkins 的主目录,用于存储 Jenkins 配置、构建作业和插件等数据。
-v /etc/localtime:/etc/localtime: 将宿主机的 /etc/localtime 文件挂载到容器的 /etc/localtime,确保容器内的时间与宿主机同步。
-v /usr/bin/docker:/usr/bin/docker: 将宿主机的 Docker 二进制文件挂载到容器的 /usr/bin/docker,使容器内能够使用 Docker 命令。
-v /var/run/docker.sock:/var/run/docker.sock: 将宿主机的 Docker 进程套接字挂载到容器的 /var/run/docker.sock,使容器内的 Docker 客户端能够与宿主机的 Docker 守护进程通信。这对于 Jenkins 在容器内执行 Docker 命令是必要的。
--restart=on-failure: 配置容器在出现错误退出时自动重启。仅在容器以非零退出状态终止时才重启。
-u 0: 以 root 用户(UID 0)身份运行容器。这通常是为了确保容器内的 Jenkins 有足够的权限执行需要的操作。
--name jenkins: 为容器指定一个名称 jenkins,方便管理和引用该容器。
jenkins/jenkins: 使用 Jenkins 官方的 Docker 镜像。这是从 Docker Hub 拉取的 jenkins/jenkins 镜像的默认最新版本。

查看容器启动成功没有

docker ps -a

端口关闭防火墙,浏览器输入http://IP地址:端口

docker ps -a 查看容器id

进入容器

docker exec -it 63595cab5fde /bin/bash #63595cab5fde是容器id

查看jenkins密码

cat /var/jenkins_home/secrets/initialAdminPassword

重启docker容器

docker restart 63595cab5fde #63595cab5fde 容器id

三、jenkins安装插件

点击安装推荐的插件–自动安装一部分插件
创建一个管理员用户
刚刚安装的插件,有的安装失败,重新安装
如图所示修改url 修改为http://mirror.xmission.com/jenkins/updates/current/update-center.json
然后重启jenkins
在这里插入图片描述

四、运行jenkins的docker 容器里面安裝jdk

容器里面自带的jdk 环境可能与项目使用的jdk 环境不一样,需要手动安装指定版本jdk

官网下载对应linux 的版本
https://www.oracle.com/java/technologies/downloads/archive/
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

使用xftp 上传到之前挂载服务器的文件夹 ()的文件夹
进入容器里面

docker exec -it 63595cab5fde /bin/bash #63595cab5fde是容器id

移动jdk 压缩包文件

mv /var/jenkins_home/jdk-8u421-linux-x64.tar.gz  /home/software

解压缩

tar -zxvf jdk-8u421-linux-x64.tar.gz 

重命名

mv jdk1.8.0_421 jdk8

更新 apt源

apt-get update

修复错误

sudo apt-get update --fix-missing

下载vim 编辑器

apt-get install vim

配置java环境变量

vim /etc/profile
文件底部添加内容,目录一定是jdk 安装目录
#set Java environment
export JAVA_HOME=/home/software/jdk8
export JRE_HOME=/home/software/jdk8/jre
export CLASS_PATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

文件立即生效

source /etc/profile

验证jdk 是否安装成功,出现以下内容表示安装成功

[root@hcss-ecs-f3e3 /]# java doc
Error: Could not find or load main class doc
[root@hcss-ecs-f3e3 /]# java -version
java version "1.8.0_421"
Java(TM) SE Runtime Environment (build 1.8.0_421-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.421-b09, mixed mode)

容器内安装maven

maven 版本一定要试用jdk 版本
官网下载
https://maven.apache.org/download.cgi
xftp 上传
进入docker 容器

docker exec -it 63595cab5fde /bin/bash #63595cab5fde是容器id

移动文件

mv /var/jenkins_home/apache-maven-3.8.1-bin.tar.gz  /home/software

解压缩安装

tar -zxvf apache-maven-3.8.1-bin.tar.gz

重命名

mv apache-maven-3.8.1 maven3.8.1

添加环境变量

vim /etc/profile
文件底部添加
export MAVEN_HOME=/home/software/maven3.8.1
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
// 生效
source /etc/profile

验证安装成功

root@63595cab5fde:/home/software# mvn -version
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: /home/software/maven3.8.1
Java version: 1.8.0_421, vendor: Oracle Corporation, runtime: /home/software/jdk8/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.53.1.el7.x86_64", arch: "amd64", family: "unix"

配置maven 私有仓库地址

进入maven 安装地址

root@63595cab5fde:/home/software/maven3.8.1# mkdir repository
root@63595cab5fde:/home/software/maven3.8.1# cd ./repository
root@63595cab5fde:/home/software/maven3.8.1/repository# pwd
/home/software/maven3.8.1/repository
root@63595cab5fde:/home/software/maven3.8.1/repository# 

复制这个路径

编辑maven 配置文件
设置显示行数
:set number
55行添加

<localRepository>/home/software/maven3.8.1/repository</localRepository>

169源注射换为阿里的

<mirror>
		<id>alimaven</id>
		<mirrorOf>central</mirrorOf>
		<name>aliyun maven</name>
		<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

五、jenkins 配置相关环境

安装插件
Maven Integration: Maven 集成管理插件。
Gitee : Gitee 集成插件。
Publish Over SSH:远程文件发布插件。
SSH : 远程脚本执行插件。
在这里插入图片描述配置jdk
在这里插入图片描述
配置maven
在这里插入图片描述

六、部署gitee项目

创建maven项目
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux下的进程等待(wait、waitpid)

目录 引言 进程等待的必要性 见见猪跑&#xff1a;是什么 怎么办 多个子进程时 阻塞等待 非阻塞轮询 参数一&#xff1a; 参数二 进程等待的原理 进程退出相关的宏 第三个参数option&#xff08;设置等待的方式&#xff09; 引言 在Linux操作系统中&#xff0c;进程…

Jmeter实际应用

环境准备 JDK1.8Jmeter 5.6.3 下载地址Jmeter 插件 下载地址 放到lib/ext下 常用命令 # 启动 sh jmeter# 集群模式下启动节点&#xff0c;不启动用不了集群 sh jmeter-server#生成ssl需要的证书, 这里会要求输入个密码&#xff0c;是要在jmeter中用的 keytool -import -ali…

Claude Financial Data Analyst:基于Claude的金融数据分析工具!免费开源!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…

基于SSM+小程序的垃圾分类管理系统(垃圾2)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM小程序的垃圾分类管理系统实现了管理员及用户。 1、管理员功能结构图&#xff0c;管理员功能有个人中心&#xff0c;管理员管理&#xff0c;基础数据管理、论坛管理、垃圾信息管理…

钰泰ETA4553电压电平转换器IC

描述 ETA4553 是两位同相转换器&#xff0c;是一种双向电压电平转换器&#xff0c;可用于建立混合电压系统之间的数字开关兼容性。它使用两个独立的可配置电源轨&#xff0c;A 端口支持 1.65V 至 5.5V 的工作电压&#xff0c;同时跟踪 VCCA 电源&#xff0c;B 端口支持 2.3V 至…

QT QDialog::exec()调用时清除部件所有焦点

最近在做项目时&#xff0c;遇到一个问题&#xff1a;在统信UOS系统编写的QT程序&#xff0c;其中进入某些页面时&#xff0c;或者显示模态窗时&#xff0c;按钮都会有一个焦点框&#xff0c;这个是不允许的&#xff0c;于是乎&#xff0c;开始了清理焦点的旅途。 一、清理QDia…

高速自爆穿梭无人机技术详解

高速自爆穿梭无人机技术是一种结合了高速飞行与自爆式攻击能力的先进无人机技术。以下是对该技术的详细解析&#xff1a; 一、技术特点 1. 高速飞行&#xff1a; 高速自爆穿梭无人机通常具备极高的飞行速度&#xff0c;如部分型号的速度可达到174公里/小时&#xff0c;甚至更…

五,Linux基础环境搭建(CentOS7)- 安装Kafka

Linux基础环境搭建&#xff08;CentOS7&#xff09;- 安装Kafka 大家注意以下的环境搭建版本号&#xff0c;如果版本不匹配有可能出现问题&#xff01; 一、Kafka下载及安装 Kafka是由Apache软件基金会开发的一个开源流处理平台&#xff0c;由Scala和Java编写。Kafka是一种高…

[ARC159D] LIS 2 题解

[ARC159D] LIS 2 题面&#xff1a; 题面翻译 给定 n n n 个操作&#xff0c;每次操作给出 l , r l,r l,r&#xff0c;并在 a a a 序列里依次添加 i ∈ [ l , r ] i\in[l,r] i∈[l,r]。 求最后 a a a 的最长上升子序列。 题目描述 数列 $ X $ があります。初め、$ X $ は空…

网络搜索引擎Shodan(1)

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;shodan(1)_哔哩哔哩_bilibili 本文主要讲解网络搜索引擎Shodan的一些用法&#xff08;host和search这两个命令&#xff09;。 Shodan 是一个网络…

Matlab学习02-matlab中的数据显示格式及符号变量

目录 一&#xff0c;关系运算和逻辑运算 二&#xff0c;变量 三&#xff0c;数据显示格式 四&#xff0c;符号运算 1&#xff0c;创建符号变量 2&#xff0c;数值矩阵转换成符号矩阵 一&#xff0c;关系运算和逻辑运算 在matlab中&#xff0c;只要数值不是 &#xff0…

jenkins下拉参数联动

需要安装Active Choices插件&#xff0c;官网地址&#xff1a; https://plugins.jenkins.io/uno-choice/ 安装完插件以后会出现Active Choices选项&#xff1a; 第一个参数&#xff1a; return ["dubbo-op-all-deployment1", "dubbo-op-all-deployment2",…

合并数组的两种常用方法比较

在 JavaScript 中&#xff0c;合并数组的两种常用方法是使用扩展运算符 (...) 和使用 push 方法。 使用扩展运算符 this.items [...this.items, ...data.items]; 优点&#xff1a; 易于理解&#xff1a;使用扩展运算符的语法非常直观&#xff0c;表达了“将两个数组合并成一个…

基于vue框架的的高校消防设施管理系统06y99(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;设备分类,设备信息,维修人员,报修信息,维修进度,院系,消防知识,培训记录,培训信息,备件信息,备件申请,派发信息,采购信息 开题报告内容 基于Vue框架的高校消防设施管理系统开题报告 一、项目背景与意义 随着高校规模的不断扩大和校园建…

基于Django+Python的房屋信息可视化及价格预测系统设计与实现(带文档)

项目运行 需要先安装Python的相关依赖&#xff1a;pymysql&#xff0c;Django3.2.8&#xff0c;pillow 使用pip install 安装 第一步&#xff1a;创建数据库 第二步&#xff1a;执行SQL语句&#xff0c;.sql文件&#xff0c;运行该文件中的SQL语句 第三步&#xff1a;修改源…

无人机喊话器详解!

喊话器材料 外壳常采用尼龙纤维增强材料&#xff0c;这种材料具有抗摔、抗震、轻便、灵活、质量稳定、操作简单等优点&#xff0c;能够满足不同场景的需求。 喊话范围 无人机喊话器的喊话范围主要取决于设备的型号、环境条件以及喊话器的性能参数。一般来说&#xff0c;无人…

【334】基于springboot的仓库管理系统

本科毕业设计论文 题目&#xff1a;仓库管理系统设计与实现 摘 要 信息内容数据从传统到当今&#xff0c;一直在改变&#xff0c;忽然互联网技术让传统信息内容管理见到划时代的黎明&#xff0c;由于传统信息内容管理从时效性、安全系数、可执行性等多个方面&#xff0c;碰到…

rsync算法原理

1. 简介 rsync是一种文件同步的工具&#xff0c;也是一种算法。 2. 算法原理 背景&#xff1a;计算机 α \alpha α 上有文件 a, 计算机 β \beta β上有文件b。要对这两个文件进行同步。 β \beta β将文件b分成大小为S字节的若干块&#xff0c;最后一份可能不足S字节对于b…

中小企业设备维护新策略:Spring Boot系统设计与实现

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

安灯系统助力汽车零部件工厂快速解决生产异常

在汽车零部件制造领域&#xff0c;高效的生产管理和快速解决异常情况是确保产品质量和生产进度的关键。而安灯系统的应用&#xff0c;正为汽车零部件工厂带来了全新的变革&#xff0c;助力其快速解决生产异常。 汽车零部件工厂的生产报工产线看板直观地反映出生产的各项关键数据…