jenkins pipeline使用
1、jenkins全局配置
1.1、maven配置

1.2、jdk配置

1.3、git配置

2、构建环境配置
2.1、安装时间插件 Date Parameter

2.2、Git Parameter 插件安装

3、pipeline如下
pipeline {agent anyenvironment {image_name = "192.168.122.150/ken-test/price-service:${date}"server_name = "ken-price-service"namespace = "hc-ken"}stages {stage('拉取代码') {steps {checkout([$class: 'GitSCM', branches: [[name:"${params.TAG}"]], extensions: [], userRemoteConfigs: [[credentialsId: 'xxxxx', url: 'https://codeup.aliyun.com/63dfsafaew16cdbdgwe2a87dd6/hc-ken/ken-price.git']]])}}stage('编译jar包'){ steps {retry(2) { sh "/opt/maven/bin/mvn clean package -U -Dmaven.test.skip=true" }} }stage('构建镜像&推送镜像仓库'){ steps {retry(2) { sh '''SPRING_PROFILES="ken_test"LINUX_TIME_ZONE="Africa/Lagos"JAR_FILE="price-service-1.0.0-SNAPSHOT.jar"cd ./price-servicedocker build --build-arg SPRING_PROFILES="${SPRING_PROFILES}" --build-arg LINUX_TIME_ZONE="${LINUX_TIME_ZONE}" --build-arg JAR_FILE="${JAR_FILE}" -t "${image_name}" .docker login -uadmin -pHarbor12345 192.168.122.150docker push ${image_name} && docker rmi ${image_name}''' }}}stage('部署'){ steps {retry(2) { sh 'kubectl --kubeconfig /opt/kubernetes/config set image -n hc-ken deploy/${server_name} ${server_name}=${image_name}' }//retry(2) { echo 'test' }} }}}
4、Dockerfile文件如下
[root@jenkins price-service]# cat Dockerfile
#1基础镜像
FROM harbor.hcloud.com:81/library/jdk-time-as-skywalking:8-jdk-alpine
#2接收外部参数 阿波罗配置、激活的环境、jar、时区
ARG APOLLO_KEY
ARG APOLLO_APP_ID
ARG APOLLO_META
ARG APOLLO_CLUSTER
ARG SPRING_PROFILES
ARG LINUX_TIME_ZONE
ARG JVM_TIME_ZONE
ARG JAR_FILE
#3修改系统时区
RUN rm /etc/localtime
RUN ln -s /usr/share/zoneinfo/${LINUX_TIME_ZONE} /etc/localtime
#4创建目录
RUN mkdir -p /home/juser/app/bin
ADD target/${JAR_FILE} /home/juser/app/bin/app.jar
#5cpoy启动脚本
ADD jenkins/restart_docker.sh /home/juser/app/bin/restart.sh
RUN chmod +x /home/juser/app/bin/restart.sh
RUN chown -R juser:juser /home/juser
ENV APOLLO_KEY "${APOLLO_KEY}"
ENV APOLLO_APP_ID "${APOLLO_APP_ID}"
ENV APOLLO_META "${APOLLO_META}"
ENV APOLLO_CLUSTER "${APOLLO_CLUSTER}"
ENV SPRING_PROFILES "${SPRING_PROFILES}"
ENV JVM_TIME_ZONE "${JVM_TIME_ZONE}"
#6切换用户
USER juser
WORKDIR /home/juser
#7暴露端口
EXPOSE 9070
#8执行脚本
ENTRYPOINT ["/home/juser/app/bin/restart.sh","start"]
#CMD ["/home/juser/app/bin/restart.sh","http://192.168.122.227:8080 ","175-dev-data","dev"]
5、构建完成如下

相关文章:
jenkins pipeline使用
1、jenkins全局配置 1.1、maven配置 1.2、jdk配置 1.3、git配置 2、构建环境配置 2.1、安装时间插件 Date Parameter 2.2、Git Parameter 插件安装 3、pipeline如下 pipeline {agent anyenvironment {image_name "192.168.122.150/ken-test/price-service:${date}&…...
MATLAB——神经网络参考代码
欢迎关注“电击小子程高兴的MATLAB小屋” %% I. 清空环境变量 clear all clc %% II. 训练集/测试集产生 %% % 1. 导入数据 load spectra_data.mat %% % 2. 随机产生训练集和测试集 temp randperm(size(NIR,1)); %打乱60个样本排序 % 训练集——50个样本 P_train NIR(…...
小程序搭建OA项目首页布局界面
首先让我们来学习以下Flex布局 一,Flex布局简介 布局的传统解决方案,基于盒状模型,依赖 display属性 position属性 float属性 Flex布局简介 Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的…...
HyperLogLog算法
前言 现在很多站点基本都有统计 PV 和 UV 的需求,PV 的统计很简单,在 Redis 里面维护一个计数器,页面每访问一次计数器就 1,获取 PV 就是读取计数器的值。 相比之下,UV 的统计就比较麻烦了,因为要对用户去…...
自定义Docker镜像--Jupyterlab
概述 自定义Jupyterlab镜像,为deployment做准备 步骤 下载基础镜像:centos:7.9.2009 docker search centos:7.9.2009 docker pull centos:7.9.2009 启动容器 部署应用 # 启动容器 docker run -it --name test centos:7.9.2009 bash# 在容器内部署…...
IDEA中明明导入jar包了,依旧报ClassNotFoundException
解决办法: 1.点击IDEA右上角的设置 2.点击Project Structure... 3.点击Artifacts,点击号把包添加下就可以了...
【VIM TMUX】开发工具 Vim 在 bash 中的显示与 tmux 中的显示不同
开发工具 Vim 在 bash 中的显示与 tmux 中的显示不同-CSDN博客 此方法有效 方法如下: 1.在~/.bashrc中添加 alias tmuxtmux -2 ,然后使配置生效 $source ~/.bashrc . 2.在~/.tmux.conf中添加 set -g default-terminal "screen-256color" 完成之后即可…...
全网最全,Postman接口自动化测试实战整理,避开所有弯路...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 背景描述 项目要…...
蓝桥杯双周赛算法心得——三带一(暴力枚举)
大家好,我是晴天学长,枚举思想,需要的小伙伴可以关注支持一下哦!后续会继续更新的。 1) .三带一 2) .算法思路 1.通过Scanner读取输入的整数n,表示接下来有n个字符串需要处理。 2.使用循环遍历每个字符串:…...
【C++】适配器模式 - - stack/queue/deque
目录 一、适配器模式 1.1迭代器模式 1.2适配器模式 二、stack 2.1stack 的介绍和使用 2.2stack的模拟实现 三、queue 3.1queue的介绍和使用 3.2queue的模拟实现 四、deque(不满足先进先出,和队列无关) 4.1deque的原理介绍 4.2dequ…...
EKP接口开发Webservice服务和Restservice服务以及定时任务Demo
继承com.landray.kmss.sys.webservice2.interfaces.ISysWebservice,同时在接口上使用WebService注解将其标识为WebService接口 package com.landray.kmss.third.notify.webservice;import com.alibaba.fastjson.JSONObject; import com.landray.kmss.sys.webservic…...
如何确定IP地址的具体位置?
IP地址通过几种方法帮助确定具体位置,尽管它们的准确性和精度因不同的情况而异。以下是几种确定具体位置的主要方法: 地理IP数据库:这是最常用的方法之一,它使用IP地址和地理位置数据的映射来确定用户的位置。这些数据库存储了大量…...
软考-网络安全体系与网络安全模型
本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 by 2023年10月 网络安全体系相关安全模型 BLP机密性模型 BLP(Biba-格雷泽-麦克拉伦&#x…...
Java身份证OCR识别 - 阿里云API【识别准确率超过99%】
1. 阿里云API市场 https://market.aliyun.com/products/57124001/cmapi00063618.html?spm5176.28261954.J_7341193060.41.60e52f3drduOTh&scm20140722.S_market%40%40API%E5%B8%82%E5%9C%BA%40%40cmapi00063618._.ID_market%40%40API%E5%B8%82%E5%9C%BA%40%40cmapi0006361…...
vue中获取复选框是否被选中的值、如何用JavaScript判断复选框是否被选中
一、方法介绍 第一种方法:通过获取dom元素,getElementById、querySelector、getElementsByName、querySelectorAll(需要遍历,例如:for循环) 第二种是用v-model在input复选框上绑定一个变量,通过…...
Python学习之逻辑中的循环有哪些?
1. for循环 for 循环用于迭代 (遍历)一个序列,例如列表、元组、字符串或字典中的元素。 通常使用 for 循环来遍历可迭代对象中的元素,并对每个元素执行相同的操作。 示例: for item in iterable: # 执行操作2.while循环 -while循环用于在满足某个条件…...
【uniapp微信小程序+springBoot(binarywang)
uniapp前端代码 <template><view><page-head :title"title"></page-head><view class"uni-padding-wrap"><view style"background:#FFF; padding:50rpx 0;"><view class"uni-hello-text uni-cente…...
智能井盖的用处有哪些?好用在什么地方?
智能井盖是一种基于物联网技术的井盖系统,通过集成传感器、通信设备和数据处理功能,实现对井盖的实时监测、远程管理和智能化控制。WITBEE万宾的智能井盖传感器EN100-C2,只要在城市需要的井盖上面安装即可使用,一体式结构…...
微信小程序数据存储方式有哪些
在微信小程序中,数据存储方式有以下几种: 本地存储 本地存储是一种轻量级的数据存储方式,用于存储小量的数据,例如用户的配置信息、页面的状态等。微信小程序提供了 wx.setStorage() 和 wx.getStorage() 方法,用于将数…...
FTC局部路径规划代码分析
前置知识: costmap_2d::Costmap2DROS costmap; costmap_2d::Costmap2DROS 是一个ROS包中提供的用于处理2D成本地图的类。它是一个高级的接口,通常用于与ROS导航栈中的导航规划器和本地路径跟踪器等模块进行集成。 costmap 是一个指向 Costmap2DROS 对象的指针。通…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
