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服务,有就卸载干净 查看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格式发送国外短信验证码【吉尔吉斯斯坦】官网: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实现
环境准备: jdk17 redhat keycloak 24 spring security 6 参照文档: 红帽KeyCloak:Red Hat build of Keycloak | Red Hat Product Documentation 入门指南:入门指南 | Red Hat Product Documentation 服务器管理指南&#x…...
【K8S系列】Kubernetes Pod节点CrashLoopBackOff 状态及解决方案详解【已解决】
在 Kubernetes 中,Pod 的状态为 CrashLoopBackOff 表示某个容器在启动后崩溃,Kubernetes 尝试重启该容器,但由于持续崩溃,重启的间隔时间逐渐增加。下面将详细介绍 CrashLoopBackOff 状态的原因、解决方案及相关命令的输出解释。 …...
Linux: Shell编程入门
Shell 编程入门 1 ) Shell 概念 shell 是 在英语中 壳, 外壳的意思可以把它想象成嵌入在linux这样的操作系统里面的一个微型的编程语言不像C语言, C 或 Java 等编程语言那么完整,它可以帮我们完成很多自动化任务例如保存数据监测系统的负载等等,我们同样…...
python爬虫实战案例——抓取B站视频,不同清晰度抓取,实现音视频合并,超详细!(内含完整代码)
文章目录 1、任务目标2、网页分析3、代码编写 1、任务目标 目标网站:B站视频(https://www.bilibili.com/video/BV1se41117WP/?vd_sourcee8e376ccbc5aa4cfd88e6a7917adfd1a),用于本文测验 要求:抓取该网址下的视频&…...
容灾与云计算概念
基础知识容灾备份——备份技术系统架构与备份网络方案-CSDN博客 SAN,是storage area network的简称,翻译过来就是存储区域网络。 顾名思义,SAN首先是一个网络,其次它是关于存储的,区域则是指服务器和存储资…...
基于 Python 的自然语言处理系列(44):Summarization(文本摘要)
在这一部分中,我们将探讨如何使用 Transformer 模型将长文档压缩为摘要,这个任务被称为文本摘要。文本摘要是 NLP 领域中最具挑战性的任务之一,因为它需要理解长篇文本并生成连贯的总结,捕捉文档中的核心主题。然而,当…...
RabbitMQ安装部署
安装Erlang 由于RabbitMQ是用Erlang语言编写的,所以在安装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. 业务背景 在智联招聘平台,求职者和招聘者之间的高效匹配至关重要。招聘者可以发布职位寻找合适的人才,求职者则通过上传简历寻找合适的工作。在这种复杂的场景中,我们的核心目标是为双方提供精准的匹配结果。在搜索推荐场景下,…...
unplugin-auto-import 库作用
unplugin-auto-import是一个 Vite、Webpack 和 Rollup 的插件。 一、自动导入模块 1. 减少手动导入 在 JavaScript 和 TypeScript 项目中,它可以自动检测并导入常用的模块和函数,无需手动在每个文件中进行导入操作。这大大减少了代码中的重复性导入语…...
【Multisim14.0正弦波>方波>三角波】2022-6-8
缘由有没有人会做啊Multisim14.0-其他-CSDN问答参考方波、三角波、正弦波信号产生 - 豆丁网...
vue3纯前端验证码示例
前言 验证码的用途:通过要求用户输入一串难以被机器自动识别的字符或图像,有效阻止恶意用户或脚本通过暴力破解方式尝试登录账户。验证码的分类:常见的验证码有短信、文本、图形等,安全度越高,依赖的插件或服务也越多…...
招聘程序员
全栈总监❤️golang❤️UI设计师 ☀️前端☀️Nodejs工☀️平面设计☀️PHP工 ☀️安卓❤️Flutter❤️运维☀️爬虫 公司福利: ☃️ 带薪年假、年终奖、13k-18k薪 🏩 内宿 2人/间或外宿可补助 💵 转正绩效 ✨节日礼金:生日礼金…...
Android 判断手机放置的方向
#1024程序员节|征文# 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 需求 老板:我有个手持终端,不能让他倒了,当他倒或者倾斜的时候要发出报警; 程序猿:我这..... 老板…...
Telegram机器人的手机部署
目的 一直有读 epub 电子书的习惯,摘录段落复制下来段落很难看,把自己写的排版器的逻辑复制下来,写成了一个排版机器人所有发给机器人的文字,都会经过排版,后转发到读书频道 前提 本来最好方法是直接把机器人架在服…...
ffmpeg视频滤镜: 色温- colortemperature
滤镜简述 colortemperature 官网链接 》 FFmpeg Filters Documentation 这个滤镜可以调节图片的色温,色温值越大显得越冷,可以参考一下下图: 咱们装修的时候可能会用到,比如选择灯还有地板的颜色的时候,选暖色调还是…...
Django+Vue全栈开发项目入门(二)
Vue是一款用于构建用户界面的JavaScript渐进式框架,它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、响应式的、组件化的编程模型,有助于高效地开发用户界面。 环境准备 安装Node.js: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
关注这个靶场的其它相关笔记:SQLI LABS —— 靶场笔记合集-CSDN博客 0x01:过关流程 输入下面的链接进入靶场(如果你的地址和我不一样,按照你本地的环境来): http://localhost/sqli-labs/Less-9/ 靶场提示 …...
【小白学机器学习24】 用例子来比较:无偏估计和有偏估计
目录 1 关于无偏估计 1.1 无偏估计的定义 2 原始数据 2.1 假设我们是上帝,我们能创造一个总体/母体 population 2.2 按尽量随机取样的原则去取1个随机样本 sample1 3 一个关于无偏估计的理解 3.1 接着上面的总体和样本 sample1 3.2 左边的计算,期…...
C++在实际项目中的应用第二节:C++与网络编程
第五章:C在实际项目中的应用 第二节:C与网络编程 1. TCP/IP协议详解与C实现 TCP/IP(传输控制协议/互联网协议)是现代互联网通信的基础协议。理解 TCP/IP 协议对于开发网络应用至关重要。本节将详细介绍 TCP/IP 协议的工作原理以…...
依赖关系是危险的
依赖, 我们需要它们,但如何有效安全地使用它们?在本周的节目中,Kris 与 Ian 和 Johnny 一起讨论了 polyfill.io 供应链攻击、Go 中依赖管理和使用的历史,以及 Go 谚语“一点复制胜过一点依赖”。当然,我们用一些不受欢…...
ipguard与Ping32如何加密数据防止泄露?让企业信息更安全
在信息化时代,数据安全已成为企业运营的重中之重。数据泄露不仅会导致经济损失,还可能损害企业声誉。因此,选择合适的数据加密工具是保护企业敏感信息的关键。本文将对IPGuard与Ping32这两款加密软件进行探讨,了解它们如何有效加密…...
gitlab 的备份与回复
一、gitlab备份 1.确定备份目录 gitlab 默认的备份目录为/var/opt/gitlab/backups,可通过配置gitlab.rb配置文件进行修改,如: [rootlocalhost ~]# vim /etc/gitlab/gitlab.rb #若要修改备份文件的存储目录话,打开下面选项的注释…...
创建型模式-----建造者模式
目录 背景: 构建模式UML 代码示例 房子成品: 构建器抽象: 具体构建器: 建筑师: 测试部…...
威胁 Windows 和 Linux 系统的新型跨平台勒索软件:Cicada3301
近年来,网络犯罪世界出现了新的、日益复杂的威胁,能够影响广泛的目标。 这一领域最令人担忧的新功能之一是Cicada3301勒索软件,最近由几位网络安全专家进行了分析。他们有机会采访了这一危险威胁背后的勒索软件团伙的成员。 Cicada3301的崛…...
Go 语言基础教程:7.Switch 语句
在这篇教程中,我们将学习 Go 语言中的 switch 语句,它是条件分支的重要结构。我们将通过一个示例程序逐步解析 switch 的不同用法。 package mainimport ("fmt""time" )func main() {i : 2fmt.Print("Write ", i, " …...
mysql原理、部署mysql主从+读写分离、监控mysql主从脚本
mysql:工作原理 从库生成两个线程,一个I/O线程,一个SQL线程; i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中; 主库会生成一个 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…...
做网站视频博彩/如何提高网站的搜索排名
提起斗鱼的女主播们,大家第一时间想到的应该都是貌美如花。今天小编就带领大家抓取斗鱼直播主播们的封面照片,通过他们的封面照片来寻找自己最喜欢的女主播,一起来看看吧。 01.程序讲解 今天,我们所获取的封面照片包含了三个直播…...
做企业网站什么软件好/网络服务提供者不履行法律行政法规规定
问题描述 给你一个按非递减顺序 排序的整数数组 nums,返回每个数字的平方 组成的新数组,要求也按非递减顺序排序.解决思路 ① 先修改数组中元素的值, 将其改成该数的平方. ②再对数组进行排序.源代码 class Solution {public int[] sortedSquares(int[]…...
珠海移动app开发公司/什么是搜索引擎优化推广
2011-06-18 回答这个程序所用的文件名可以直接从命令行给出,例如生成了a.exe文件,那么:a.exeb.txt执行这个命令行,程序就会统计b.txt.文件中的字母数量。学习编程就像学数学,最重要的就是自己独立思考,像这…...
做网站需要准备什么/如何弄一个自己的网站
没有有DRF基础的小伙伴先去官网学习DRF基础 1,我们先在models.py定义类然后写两个字段 class JiLian(models.Model):name models.CharField(max_length32)pid models.IntegerField(max_length32, nullTrue) //pid用来写它对应的父级id 创建好之后 迁移数据库即…...
网站建设 助力社会组织/百度一下百度一下你就知道
7 配置DAG 7.1 创建仲裁存储账户 在Azure Portal上选“新建”——>Storge——>Storage account-blob…,如图。 输入存储账户名称,账户类型设置为“常规用途”,复制设置为“本地冗余存储LRS” 为了保证仲裁资源的独立性,当地…...
局域网内建立网站/长沙优化科技有限公司
为什么80%的码农都做不了架构师?>>> 1.ECHO 显示信息,或将命令回显打开或关上。 ECHO [ON | OFF] ECHO [message] 要显示当前回显设置,键入不带参数的 ECHO。 2.PAUSE 暂停批处理程序,并显示以下消息: 请按任意键继续…...