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

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项目
在这里插入图片描述

相关文章:

jenkins 自动化部署Springboot 项目

一、安装docker 1.更新yum命令 yum -y update2.查看机器有残留的docker服务&#xff0c;有就卸载干净 查看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/contai…...

使用xml发送国际短信(smspro)【吉尔吉斯斯坦】

//使用xml格式发送国外短信验证码【吉尔吉斯斯坦】官网&#xff1a;https://smspro.nikita.kg/ public function api_test($data,$user){$url "http://smspro.nikita.kg/api/message";$code 123456 ;$content Your verification code 123456, this verification …...

springmvc-springsecurity-redhat keycloak SAML2 xml实现

环境准备&#xff1a; jdk17 redhat keycloak 24 spring security 6 参照文档&#xff1a; 红帽KeyCloak&#xff1a;Red Hat build of Keycloak | Red Hat Product Documentation 入门指南&#xff1a;入门指南 | Red Hat Product Documentation 服务器管理指南&#x…...

【K8S系列】Kubernetes Pod节点CrashLoopBackOff 状态及解决方案详解【已解决】

在 Kubernetes 中&#xff0c;Pod 的状态为 CrashLoopBackOff 表示某个容器在启动后崩溃&#xff0c;Kubernetes 尝试重启该容器&#xff0c;但由于持续崩溃&#xff0c;重启的间隔时间逐渐增加。下面将详细介绍 CrashLoopBackOff 状态的原因、解决方案及相关命令的输出解释。 …...

Linux: Shell编程入门

Shell 编程入门 1 ) Shell 概念 shell 是 在英语中 壳, 外壳的意思可以把它想象成嵌入在linux这样的操作系统里面的一个微型的编程语言不像C语言, C 或 Java 等编程语言那么完整&#xff0c;它可以帮我们完成很多自动化任务例如保存数据监测系统的负载等等&#xff0c;我们同样…...

python爬虫实战案例——抓取B站视频,不同清晰度抓取,实现音视频合并,超详细!(内含完整代码)

文章目录 1、任务目标2、网页分析3、代码编写 1、任务目标 目标网站&#xff1a;B站视频&#xff08;https://www.bilibili.com/video/BV1se41117WP/?vd_sourcee8e376ccbc5aa4cfd88e6a7917adfd1a&#xff09;&#xff0c;用于本文测验 要求&#xff1a;抓取该网址下的视频&…...

容灾与云计算概念

​​​​​​基础知识容灾备份——备份技术系统架构与备份网络方案-CSDN博客 SAN&#xff0c;是storage area network的简称&#xff0c;翻译过来就是存储区域网络。 顾名思义&#xff0c;SAN首先是一个网络&#xff0c;其次它是关于存储的&#xff0c;区域则是指服务器和存储资…...

基于 Python 的自然语言处理系列(44):Summarization(文本摘要)

在这一部分中&#xff0c;我们将探讨如何使用 Transformer 模型将长文档压缩为摘要&#xff0c;这个任务被称为文本摘要。文本摘要是 NLP 领域中最具挑战性的任务之一&#xff0c;因为它需要理解长篇文本并生成连贯的总结&#xff0c;捕捉文档中的核心主题。然而&#xff0c;当…...

RabbitMQ安装部署

安装Erlang 由于RabbitMQ是用Erlang语言编写的&#xff0c;所以在安装RabbitMQ之前需要安装Erlang 安装依赖 [rootpro-ex ~]yum install make gcc gcc-c build-essential openssl openssl-devel unixODBC unixODBC-devel kernel-devel m4 ncurses-devel设置Eralng的存储库 […...

智联招聘×Milvus:向量召回技术提升招聘匹配效率

01. 业务背景 在智联招聘平台&#xff0c;求职者和招聘者之间的高效匹配至关重要。招聘者可以发布职位寻找合适的人才&#xff0c;求职者则通过上传简历寻找合适的工作。在这种复杂的场景中&#xff0c;我们的核心目标是为双方提供精准的匹配结果。在搜索推荐场景下&#xff0c…...

unplugin-auto-import 库作用

unplugin-auto-import是一个 Vite、Webpack 和 Rollup 的插件。 一、自动导入模块 1. 减少手动导入 在 JavaScript 和 TypeScript 项目中&#xff0c;它可以自动检测并导入常用的模块和函数&#xff0c;无需手动在每个文件中进行导入操作。这大大减少了代码中的重复性导入语…...

【Multisim14.0正弦波>方波>三角波】2022-6-8

缘由有没有人会做啊Multisim14.0-其他-CSDN问答参考方波、三角波、正弦波信号产生 - 豆丁网...

vue3纯前端验证码示例

前言 验证码的用途&#xff1a;通过要求用户输入一串难以被机器自动识别的字符或图像&#xff0c;有效阻止恶意用户或脚本通过暴力破解方式尝试登录账户。验证码的分类&#xff1a;常见的验证码有短信、文本、图形等&#xff0c;安全度越高&#xff0c;依赖的插件或服务也越多…...

招聘程序员

全栈总监❤️golang❤️UI设计师 ☀️前端☀️Nodejs工☀️平面设计☀️PHP工 ☀️安卓❤️Flutter❤️运维☀️爬虫 公司福利&#xff1a; ☃️ 带薪年假、年终奖、13k-18k薪 &#x1f3e9; 内宿 2人/间或外宿可补助 &#x1f4b5; 转正绩效 ✨节日礼金&#xff1a;生日礼金…...

Android 判断手机放置的方向

#1024程序员节&#xff5c;征文# 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 需求 老板&#xff1a;我有个手持终端&#xff0c;不能让他倒了&#xff0c;当他倒或者倾斜的时候要发出报警&#xff1b; 程序猿&#xff1a;我这..... 老板…...

Telegram机器人的手机部署

目的 一直有读 epub 电子书的习惯&#xff0c;摘录段落复制下来段落很难看&#xff0c;把自己写的排版器的逻辑复制下来&#xff0c;写成了一个排版机器人所有发给机器人的文字&#xff0c;都会经过排版&#xff0c;后转发到读书频道 前提 本来最好方法是直接把机器人架在服…...

ffmpeg视频滤镜: 色温- colortemperature

滤镜简述 colortemperature 官网链接 》 FFmpeg Filters Documentation 这个滤镜可以调节图片的色温&#xff0c;色温值越大显得越冷&#xff0c;可以参考一下下图&#xff1a; 咱们装修的时候可能会用到&#xff0c;比如选择灯还有地板的颜色的时候&#xff0c;选暖色调还是…...

Django+Vue全栈开发项目入门(二)

Vue是一款用于构建用户界面的JavaScript渐进式框架&#xff0c;它基于标准HTML、CSS和JavaScript构建&#xff0c;并提供了一套声明式的、响应式的、组件化的编程模型&#xff0c;有助于高效地开发用户界面。 环境准备 安装Node.js&#xff1a;Vue项目的构建和运行依赖于Node…...

【ubuntu改源】

ubuntu改源 备份原始源查看ubuntu发行版本arm64 noble版本的源vim修改源更新系统软件源 备份原始源 sudo cp /etc/apt/sources.list /etc/apt/sources.list.disabled查看ubuntu发行版本 lsb_release -aarm64 noble版本的源 清华源 vim修改源 esc :1,$d # 删除所有# 默认注…...

SQLI LABS | Less-9 GET-Blind-Time based-Single Quotes

关注这个靶场的其它相关笔记&#xff1a;SQLI LABS —— 靶场笔记合集-CSDN博客 0x01&#xff1a;过关流程 输入下面的链接进入靶场&#xff08;如果你的地址和我不一样&#xff0c;按照你本地的环境来&#xff09;&#xff1a; http://localhost/sqli-labs/Less-9/ 靶场提示 …...

【小白学机器学习24】 用例子来比较:无偏估计和有偏估计

目录 1 关于无偏估计 1.1 无偏估计的定义 2 原始数据 2.1 假设我们是上帝&#xff0c;我们能创造一个总体/母体 population 2.2 按尽量随机取样的原则去取1个随机样本 sample1 3 一个关于无偏估计的理解 3.1 接着上面的总体和样本 sample1 3.2 左边的计算&#xff0c;期…...

C++在实际项目中的应用第二节:C++与网络编程

第五章&#xff1a;C在实际项目中的应用 第二节&#xff1a;C与网络编程 1. TCP/IP协议详解与C实现 TCP/IP&#xff08;传输控制协议/互联网协议&#xff09;是现代互联网通信的基础协议。理解 TCP/IP 协议对于开发网络应用至关重要。本节将详细介绍 TCP/IP 协议的工作原理以…...

依赖关系是危险的

依赖, 我们需要它们&#xff0c;但如何有效安全地使用它们&#xff1f;在本周的节目中&#xff0c;Kris 与 Ian 和 Johnny 一起讨论了 polyfill.io 供应链攻击、Go 中依赖管理和使用的历史&#xff0c;以及 Go 谚语“一点复制胜过一点依赖”。当然&#xff0c;我们用一些不受欢…...

ipguard与Ping32如何加密数据防止泄露?让企业信息更安全

在信息化时代&#xff0c;数据安全已成为企业运营的重中之重。数据泄露不仅会导致经济损失&#xff0c;还可能损害企业声誉。因此&#xff0c;选择合适的数据加密工具是保护企业敏感信息的关键。本文将对IPGuard与Ping32这两款加密软件进行探讨&#xff0c;了解它们如何有效加密…...

gitlab 的备份与回复

一、gitlab备份 1.确定备份目录 gitlab 默认的备份目录为/var/opt/gitlab/backups&#xff0c;可通过配置gitlab.rb配置文件进行修改&#xff0c;如&#xff1a; [rootlocalhost ~]# vim /etc/gitlab/gitlab.rb #若要修改备份文件的存储目录话&#xff0c;打开下面选项的注释…...

创建型模式-----建造者模式

目录 背景&#xff1a; 构建模式UML 代码示例 房子成品&#xff1a; 构建器抽象&#xff1a; 具体构建器&#xff1a; 建筑师&#xff1a; 测试部…...

威胁 Windows 和 Linux 系统的新型跨平台勒索软件:Cicada3301

近年来&#xff0c;网络犯罪世界出现了新的、日益复杂的威胁&#xff0c;能够影响广泛的目标。 这一领域最令人担忧的新功能之一是Cicada3301勒索软件&#xff0c;最近由几位网络安全专家进行了分析。他们有机会采访了这一危险威胁背后的勒索软件团伙的成员。 Cicada3301的崛…...

Go 语言基础教程:7.Switch 语句

在这篇教程中&#xff0c;我们将学习 Go 语言中的 switch 语句&#xff0c;它是条件分支的重要结构。我们将通过一个示例程序逐步解析 switch 的不同用法。 package mainimport ("fmt""time" )func main() {i : 2fmt.Print("Write ", i, " …...

mysql原理、部署mysql主从+读写分离、监控mysql主从脚本

mysql&#xff1a;工作原理 从库生成两个线程&#xff0c;一个I/O线程&#xff0c;一个SQL线程&#xff1b; i/o线程去请求主库 的binlog&#xff0c;并将得到的binlog日志写到relay log&#xff08;中继日志&#xff09; 文件中&#xff1b; 主库会生成一个 log dump 线程&…...

模型选择拟合

1.通过多项式拟合交互探索概念 import math import numpy as np import torch from torch import nn from d2l import torch as d2l 2.使用三阶多项式来生成训练和测试数据的标签 max_degree 20 # 多项式的最大阶数 n_train, n_test 100, 100 # 训练和测试数据集大小 true…...

公司品牌策划设计/企业网站seo案例

Linux如何查看系统及硬件信息一、查看系统信息1.查看当前操作系统发行版信息&#xff1a;# cat /etc/issueWelcome to SUSE Linux Enterprise Server 11 (x86_64) - Kernel \r (\l).2、查看当前操作系统内核信息&#xff1a;# uname -aLinux Africa 2.6.27.19-5-default #1 SMP…...

网站域名价格/免费网站制作

打开vim输入:Tlist 本文转自 Lee_吉 博客&#xff0c;原文链接&#xff1a; http://blog.51cto.com/12173069/2055349 如需转载请自行联系原作者...

西安公司网站设计费用/百度站长工具验证

其实&#xff0c;Redis定义了丰富的原语命令&#xff0c;可以直接与Redis服务器交互。 但是&#xff0c;实际应用中&#xff0c;我们不太会直接使用这些原语命令&#xff0c;Redis提供了很多客户端&#xff0c;大多情况下我们是通过各式各样的客户端来操作Redis。 但是&#…...

图书馆网站建设需求分许/360安全浏览器

目录生命周期和插件maven镜像web-xml最新的头注册Servlet和设置映射上下文环境&#xff08;ServletContext&#xff09;转发&#xff08;dispatcher&#xff09;和重定向属性类&#xff08;Properties&#xff09;关于资源导出失败读取.properties文件请求和响应对象web下载文件…...

福州建设注册中心网站/关键词查询网

DateTime.Now;//当前时间 DateTime.AddDays(1)&#xff1b;//明天时间 eg&#xff1a; DateTime str DateTime.Now; DateTime str2 str.AddDays(1);...

农村小伙创业做网站/网络推广服务合同范本

1. 我们不禁要问&#xff0c;什么是"服务集群"&#xff1f;什么是"企业级开发"&#xff1f; 既然说了EJB 是为了"服务集群"和"企业级开发"&#xff0c;那么&#xff0c;总得说说什么是所谓的"服务集群"和"企业级开发&q…...