jenkins部署(docker)
docker部署,避免安装tomcat
1.拉镜像
docker pull jenkins/jenkins
2.宿主机创建文件夹
mkdir -p /lzp/jenkins_home
chmod 777 /lzp/jenkins_home/
3.启动容器
docker run -d -p 49001:8080 -p 49000:50000 --privileged=true -v /lzp/jenkins_home:/var/jenkins_home -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime --name myjenkins jenkins/jenkins
49001用于web访问 账户admin 密码在docker 日志中查看
4.配置镜像加速
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
5.更新最新版本
jenkins官网
在界面下载war包
然后传到服务器
然后把war包传到docker容器中
docker cp /lzp/jenkins_home/jenkins.war myjenkins:/usr/share/jenkins
myjenkins是容器名称
然后docker restart重启容器就是最新版了
6.权限管理插件
Role-based Authorization Strategy
针对不同视图分配不同权限,每个视图是一个项目,可以添加前端和后端等各种项目。
针对用户可以分成开发和生产用户,每个项目名称可以带dev和prod用于区分。
账号有:
开发账号:lzp-dev 只能构建 且只能看到权限内的dev项目
开发账号管理员:lzp-dev-admin 构建编辑添加项目 能看到所有dev项目
生产账号:lzp-prod 构建生产环境项目(可以不加,生产环境只能管理员部署)
生产账号管理员:lzp-prod-admin 能编辑添加构建所有生产环境项目
6.1.配置global roles
新建四种角色
这样就表示 admin角色账号有管理员权限,也就是所有权限
dev角色有read+build
dev-admin 可以任意操作 dev的项目
prod-admin 可以任意操作 prod的项目
6.2.配置 item roles
新建三种角色 用于区分项目
这样就表示 itemdev角色可以看到dev的项目
itemprod角色可以看到prod的项目 每个项目带dev或prod后缀
project01dev角色 可以看到project01dev的项目 project为项目名称
6.3.为账户分配global roles
可以分配多个角色
这样就表示 lzp-dev账号也就是lzp-开发账号 有dev的角色 有read+build的功能
6.4.为账户分配item role
可以分配多个角色
这样就表示 开发账号 也就是lzp-dev(lzp-开发账号为lzp-dev账号的名称)有project01dev项目的权限,可以部署
这样登录lzp-开发账号只能部署项目,且只能看到project01dev配置的项目
登录lzp-开发账号管理员 能看到且编辑所有itemdev配置的项目,也就是带dev后缀的项目
登录lzp-生产账号管理员 能看到且编辑所有itemprod配置的项目 也就是带prod后缀的项目
7.配置maven
全局工具配置
然后在项目配置里选择这个maven
这样在构建项目时会自动下载maven
修改maven源
<mirror><id>nexus-aliyun</id><mirrorOf>*,!jeecg,!jeecg-snapshots,!getui-nexus,!hsweb-nexus,!com.e-iceblue</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>
maven下载的依赖:
8.构建后jar包上传
插件
publish over ssh
然后系统管理/系统配置中增加ssh服务器
9.构建前端
插件:nodejs
然后在系统管理全局工具配置中配置nodejs
然后在项目里配置打包策略
node -v
npm install --global yarn --registry=https://registry.npm.taobao.org
yarn install
rm -rf ./dist-test/*
yarn build:dev
相关文章:

jenkins部署(docker)
docker部署,避免安装tomcat 1.拉镜像 docker pull jenkins/jenkins2.宿主机创建文件夹 mkdir -p /lzp/jenkins_home chmod 777 /lzp/jenkins_home/3.启动容器 docker run -d -p 49001:8080 -p 49000:50000 --privilegedtrue -v /lzp/jenkins_home:/var/jenkins_…...

Python实现时间序列分析AR定阶自回归模型(ar_select_order算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 时间序列分析中,AR定阶自回归模型(AR order selection)是指确定自回…...

Springboot自定义线程池实现多线程任务
1. 在启动类添加EnableAsync注解 2.自定义线程池 package com.bt.springboot.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.concurrent.ThreadPoolTask…...

linux离线升级openssh方法
检查openssh版本: 升级前openssh 版本为7.4 openssl 版本为1.0.2k Openssh9.6 所需openssl >1.1.1 因此openssl也需要升级。 为了防止升级失败,无法使用SSH登录,首先安装telnet 预防。查看是否安装了telnet 客户端及服务 未安装tel…...

(五)MySQL的备份及恢复
1、MySQL日志管理 在数据库保存数据时,有时候不可避免会出现数据丢失或者被破坏,这样情况下,我们必须保证数据的安全性和完整性,就需要使用日志来查看或者恢复数据了 数据库中数据丢失或被破坏可能原因: 误删除数据…...

VitePress-04-文档中的表情符号的使用
说明 vitepress 的文档中是支持使用表情符号的,像 😂 等常用的表情都是支持的。 本文就来介绍它的使用方式。 使用语法 语法 : :表情名称: 例如 : :joy: 😂 使用案例代码 # 体会【表情】的基本使用 > hello world …...
Redis客户端之Redisson(二)Redisson组件
Redisson的几个常用客户端 一、RedissonClient 1、创建 通过Config对象配置RedissonClient所需要的参数,然后获取RedissonClient对象即可。 Config config new Config(); config.useSingleServer().setAddress("redis://127.0.0.1:6379"); RedissonC…...

用Visual Studio Code创建JavaScript运行环境【2024版】
用Visual Studio Code创建JavaScript运行环境 JavaScript 的历史 JavaScript 最初被称为 LiveScript,由 Netscape(Netscape Communications Corporation,网景通信公司)公司的布兰登艾奇(Brendan Eich)在 …...
spring-web搭建
先说说这篇文章看完你能学习到什么吧 1:spring-web是什么原理以及组成,2:spring-web的搭建(以普通tomcat服务器做基础),3:敲黑板 1:spring-web是什么原理以及组成 spring-web是sp…...

C++ 之LeetCode刷题记录(二十三)
😄😊😆😃😄😊😆😃 开始cpp刷题之旅。 目标:执行用时击败90%以上使用 C 的用户。 118. 杨辉三角 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows …...

在ubuntu上在安装Squid代理服务器
Squid 是一个代理和缓存服务器,它将请求转发到所需的目的地,同时保存请求的内容,当你再次请求相同内容时,他可以向你提供缓冲内容,从而提高访问速度。Squid代理服务器目前支持的协议有:http、SSL、DNS、FTP…...
如何解决 MySQL 的 socket 错误
MySQL 通过使用 socket 文件 来管理与数据库服务器的连接,这是一种特殊类型的文件,用于促进不同进程之间的通信。MySQL 服务器的 socket 文件名为 mysqld.sock,在 Ubuntu 系统中通常存储在 /var/run/mysqld/ 目录中。这个文件会被 MySQL 服务…...

5G智慧钢铁厂数字孪生三维可视化,推进钢铁新型工业化数字化转型
5G智慧钢铁厂数字孪生三维可视化,推进钢铁新型工业化数字化转型。随着科技的不断发展,数字化转型已经成为钢铁企业转型升级的必经之路。而5G技术的广泛应用,为钢铁企业数字化转型提供了新的机遇。其中,5G智慧钢铁厂数字孪生三维可…...

万户 ezOFFICE DocumentEditExcel.jsp SQL注入漏洞
0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品,统一的基础管理平台,实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台,将外网信息维护、客户服务、互动交流和日…...

OpenCV 2 - 矩阵的掩膜操作
1知识点 1-1 CV_Assert(myImage.depth() == CV_8U); 确保输入图像是无符号字符类型,若该函数括号内的表达式为false,则会抛出一个错误。 1-2 Mat.ptr(int i = 0); 获取像素矩阵的指针,索引 i 表示第几行,从0开始计行数。 1-3 const uchar* current = mylmage.ptr(row); 获得…...

linux -- 内存管理 -- 页面分配器
linux内存管理 为什么要了解linux内存管理 分配并使用内存,是内核程序与驱动程序中非常重要的一环。内存分配函数都依赖于内核中一个非常复杂而重要的组件 - 内存管理。 linux驱动程序不可避免要与内核中的内存管理模块打交道。 linux内存管理可以总体上分为两大…...

StarRocks-3.1.0 单节点部署
1. 相关环境准备 FE: /opt/starrocks BE: /opt/starrocks 安装包下载 wget https://releases.starrocks.io/starrocks/StarRocks-3.1.0.tar.gz解压缩 tar -zxvf StarRocks-3.1.0.tar.gz 安装jdk (v2.5 及以上版本建议安装 JDK 11,我们使用…...

2023美赛A题之Lotka-Volterra【完整思路+代码】
这是2023年的成功,考虑到曾经付费用户的负责,2024年可以发出来了。去年我辅导队伍数量:15,获奖M为主,个别F,H,零S。言归正传,这里我开始分享去年的方案。由于时间久远,我…...

关于如何将Win幻兽帕鲁服务端存档转化为单人本地存档的一种方法(无损转移)
本文转自博主的个人博客:https://blog.zhumengmeng.work,欢迎大家前往查看。 原文链接:点我访问 **起因:**最近大火的开放世界缝合体游戏幻兽帕鲁的大火也是引起了博主的注意,然后博主和周边小伙伴纷纷入手,博主也是利…...

计算机网络——IP协议
前言 网络层的主要负责地址分配和路由选择,ip负责在网络中进行数据包的路由和传输。 IPv4报文组成(了解) IPv4首部:IPv4首部包含了用于路由和传输数据的控制信息,其长度为20个字节(固定长度)。 版本&#…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...