springboot 适配ARM 架构
-
下载对应的maven

https://hub.docker.com/_/maven/tags?page=&page_size=&ordering=&name=3.5.3-alpinedocker pull maven:3.5.3-alpine@sha256:4c4e266aacf8ea6976b52df8467134b9f628cfed347c2f6aaf9e6aff832f7c45
2、下载对应的jdk

https://hub.docker.com/_/openjdk/tags?page=&page_size=&ordering=&name=8u332docker pull openjdk:8u332@sha256:a113091e38c3fa501056c435e8884dccc999569fa1be2b35be1cdee0502752c6
docker save -o 自定义名称.tar xxxx 下载的镜像
docker load -i 自定义名称.tar
docker tag xxxx:v1 xxxx:xxx:xxxx
3、jenkin打包 docker login 验证【通过jenkin构建的项目构建记录,找到回放】
steps {withCredentials([usernamePassword(credentialsId: 'harbor-xxx', passwordVariable: 'HPASSWD', usernameVariable: 'HUSER')]) {sh '''docker build --build-arg BASE_IMAGE=reg.xxx.com/library/arm64/openjdk:8u332-nc -f xxx/Dockerfile -t reg.xxx.com/dev/xx-arm64:1.0 .docker login reg.xxx.com -u $HUSER -p $HPASSWDdocker push reg.xxx.com/dev/xx-arm64:1.0'''}}
完整的JenkinFile
pipeline {agent {docker {image 'reg.xxx.com/library/arm64/maven-arm64:3.5.3'args '-v /root/.m2:/root/.m2 -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/kubectl:/usr/bin/kubectl'label 'arm64'}}stages {stage('build') {steps {sh 'mvn clean package -U -P ${active_profile}'}}stage('deploy') { steps {withCredentials([usernamePassword(credentialsId: 'harbor-xxx', passwordVariable: 'HPASSWD', usernameVariable: 'HUSER')]) {sh '''docker build --build-arg BASE_IMAGE=reg.xxx.com/library/arm64/openjdk:8u332-nc -f xxx/Dockerfile -t reg.xxx.com/dev/xx-arm64:1.0 .docker login reg.xxx.com -u $HUSER -p $HPASSWDdocker push reg.xxx.com/dev/xx-arm64:1.0'''}}}}
}
对应的DockerFile
ARG BASE_IMAGE
FROM ${BASE_IMAGE}ADD target/xxx.jar /opt/xxx.jarWORKDIR /var/www/appEXPOSE 7999#环境变量 JAVA_OPTS DEBUG_OPTS JMX_OPTS SPRING_CONFIG 由k8s传入
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS $DEBUG_OPTS $JMX_OPTS -jar /opt/xxx.jar --spring.config.location=$SPRING_CONFIG" ]
相关文章:
springboot 适配ARM 架构
下载对应的maven https://hub.docker.com/_/maven/tags?page&page_size&ordering&name3.5.3-alpinedocker pull maven:3.5.3-alpinesha256:4c4e266aacf8ea6976b52df8467134b9f628cfed347c2f6aaf9e6aff832f7c45 2、下载对应的jdk https://hub.docker.com/_/o…...
ElementUI el-select 组件动态设置disabled后,高度变更的问题解决办法
问题描述 Vue2 项目在使用 el-select 组件时,动态将disabled变更为了 true,元素的高度发生了变化。 问题原因 通过浏览器开发人员工具面板,发现,组件内的 input 元素被动态设置了height的样式: 在项目中检查后并…...
写个网络爬虫
网络爬虫是一种自动化程序,通过发送HTTP请求并解析HTML等网页内容,获取指定网页数据的工具。下面是一个简单的Python代码示例,用于实现一个基本的网络爬虫: import requests from bs4 import BeautifulSoupdef get_html(url):try…...
模板方法模式的实现
1. 引言: 交易管理系统中的模板方法模式 之前做过一个交易管理系统,其中有一个核心模块是“交易流程管理”,该模块需要处理不同类型的交易,比如期货交易、期权交易和股票交易。在构建交易管理系统的过程中,我们面临了一个核心挑战…...
Redis的计数功能
Redis的学习专栏:http://t.csdnimg.cn/a8cvV 许多应用都会使用Redis作为计数的基本工具,可以实现快速计数、查询缓存的功能,同时数据也可以异步处理。例如:博客浏览,用户每查看一次,就会增加一次的访问量&a…...
WPF学习(7) --MVVM模式
1. MVVM模式概述 MVVM模式由三个主要部分组成: Model(模型):包含应用程序的业务逻辑和数据。通常是数据对象和数据访问层。View(视图):用户界面部分,展示数据并与用户进行交互。通…...
【人工智能】-- 受限玻尔兹曼机
个人主页:欢迎来到 Papicatch的博客 课设专栏 :学生成绩管理系统 专业知识专栏: 专业知识 文章目录 🍉引言 🍉受限玻尔兹曼机 🍈RBM的结构 🍍RBM的架构图 🍍RBM的经典实现 &…...
在 Android 中定义和使用自定义属性
1. 定义自定义属性 首先,我们需要在 res/values/attrs.xml 文件中定义自定义属性。这些属性可以是颜色、尺寸、字符串等。 创建或打开 res/values/attrs.xml 文件,并添加以下内容: <?xml version"1.0" encoding"utf-8&…...
【实战:python-Django发送邮件-短信-钉钉通知】
一 Python发送邮件 1.1 使用SMTP模块发送邮件 import smtplib from email.mime.text import MIMEText from email.header import Headermsg_from 306334678qq.com # 发送方邮箱 passwd luzdikipwhjjbibf # 填入发送方邮箱的授权码(填入自己的授权码,相当于邮箱…...
Todo List
待整理的笔记,先列出来,防止后面忘记要整理什么内容。一个一个整理: Linux内核ARM架构(v8)的系统调用的实现过程;open()/write()/read()在Linux内核中的详细实现过程,到驱动中注册的操作集的调用过程;文件…...
【Redis】Redis十大类型
文章目录 前言一、string字符串类型二、List列表类型三、 Hash表四、 Set集合五、 ZSet有序集合六、 GEO地理空间七、 HyperLogLog基数统计八、Bitmap位图九、bitfield位域十、 Stream流10.1 队列指令10.2 消费组指令10.3 ACK机制 前言 redis是k-v键值对进行存储,k…...
存储实验:Linux挂载iscsi硬盘与华为OceanStor创建LUN全流程
目录 目的环境规划实验实验流程Centos配置0. 关闭防火墙1. 设置网卡信息2. 配置路由3. iscsiadm连接存储 iSCSI LUN创建(以华为OceanStor为例)验证1. 验证是否成功2. 开启自动挂载 目的 实现Linux连接iscsi硬盘,同时实现开机自启挂载 环境规…...
高可用系统架构设计技术方案:Java架构师视角
在现代互联网环境下,高可用性(High Availability, HA)已成为衡量系统质量的重要指标之一。对于Java架构师而言,设计一套能够保证业务连续性、快速恢复和持续服务的高可用系统架构,是一项复杂而挑战性的任务。本文将从J…...
C++ --> 类和对象(三)
欢迎来到我的Blog,点击关注哦💕 前言 前面已经对类和对象有一定的了解,接下来再次深入的了解一下。 一、深入理解构造函数 构造函数体赋值: 虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能…...
JS【详解】类 class ( ES6 新增语法 )
本质上,类只是一种特殊的函数。 console.log(typeof 某类); //"function"声明类 class 方式 1 – 类声明 class Car {constructor(model, year) {this.model model;this.year year;} }方式 2 – 类表达式 匿名式 const Car class {constructor(mod…...
vue中使用$set方法给对象添加属性
vue中可以使用$set()给对象添加属性,但不是所有的对象都可以使用,vue中api明确说明,它必须用于向响应式对象上添加属性 响应式对象,vue的响应式原理,可以查看:深入响应式原理 — Vue.js ①对象赋值 this…...
【Python】ftplib的使用
仅描述基础要点,备忘。 python自带ftplib库,可实现ftp读写。 1 要点 ftp未使用默认端口21时,需显示指定端口。ftp路径带有中文,可能需要设置ftp的encoding属性为 gbk。ftplib不支持递归创建目录,需手动创建层级目录…...
CSS 【详解】CSS 函数(含 calc,min,max,clamp,cubic-bezier,env,steps 等)
函数描述CSS 版本attr()返回选择元素的属性值。2calc()允许计算 CSS 的属性值,比如动态计算长度值。3cubic-bezier()定义了一个贝塞尔曲线(Cubic Bezier)。3hsl()使用色相、饱和度、亮度来定义颜色。3hsla()使用色相、饱和度、亮度、透明度来定义颜色。3linear-grad…...
简单理解Lua 协程(coroutine)
也许更好的阅读体验 协程简单理解为可以暂停的线程,但是同一时刻只有一个协程可以处于运行状态。 文章目录 coroutine.create()coroutine.resume()coroutine.wrap()coroutine.yield()coroutine.resume()参数传递resume和yield之间互换数据 coroutine.create() lua…...
(day18) leetcode 204.计数质数
描述 给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。 示例 1: 输入:n 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2: 输入:n 0 输出:0示例 3…...
Wan2.2-I2V-A14B与Visio流程图结合:让架构图“动”起来
Wan2.2-I2V-A14B与Visio流程图结合:让架构图"动"起来 1. 静态架构图的痛点与动态化需求 在日常技术方案沟通中,我们经常使用Visio绘制各类架构图、网络拓扑图和业务流程图。这些静态图表虽然能清晰展示系统结构,但在演示数据流向…...
OpenClaw语音交互方案:Qwen3.5-9B对接Whisper实现语音指令控制
OpenClaw语音交互方案:Qwen3.5-9B对接Whisper实现语音指令控制 1. 为什么需要语音交互能力? 上周我在整理电脑文件时突然想到:既然OpenClaw能模拟人类操作电脑,为什么不给它加上耳朵呢?这个想法源于我经常双手沾满咖…...
5个强力步骤实现旧Mac升级:开源工具OpenCore Legacy Patcher全攻略
5个强力步骤实现旧Mac升级:开源工具OpenCore Legacy Patcher全攻略 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 当你的Mac提示"此Mac不支…...
Phi-3-Mini-128K多模型协作实践:与Claude Code协同完成复杂编程任务
Phi-3-Mini-128K多模型协作实践:与Claude Code协同完成复杂编程任务 1. 引言 你有没有遇到过这样的情况?面对一个稍微复杂的编程任务,比如要搭建一个带用户管理的小型Web应用,你让一个AI助手来帮忙。它可能很快给你生成了一段登…...
GLM-4.1V-9B-Bate在Multisim电路仿真中的创新结合:视觉检测电路板故障
GLM-4.1V-9B-Bate在Multisim电路仿真中的创新结合:视觉检测电路板故障 1. 引言:当AI视觉遇上电路设计 想象一下这样的场景:你刚完成一块电路板的设计,正准备在Multisim中进行仿真验证。突然发现某个元器件似乎焊接不良ÿ…...
用STM32F103和0.96寸OLED做个桌面电子宠物:从GIF动图到屏幕显示的完整流程
用STM32F103和0.96寸OLED打造智能桌面电子宠物:从动图处理到交互设计的完整指南 在嵌入式开发的世界里,没有什么比亲手打造一个会动的电子宠物更有成就感了。想象一下,你的桌面上有一个由0.96寸OLED屏幕和STM32F103微控制器驱动的小生命&…...
ICLR2025杰出论文启示录:大模型安全、微调与知识编辑的三大前沿突破
1. 深度安全对齐:从表层防御到系统级防护 大语言模型的安全性问题一直是业界关注的焦点。普林斯顿大学和Google DeepMind的研究团队发现,当前主流的安全对齐方法存在一个致命缺陷——它们只停留在模型输出的前几个token层面。这就好比给房子装防盗门却忘…...
基础入门-版本控制-GitLab/Gitea 基本使用
GitLab/Gitea 基本使用 在前面的章节中,我们学习了 Git 基础命令和团队协作流程。在实际工作中,这些操作都是围绕着代码托管平台展开的。GitLab 和 Gitea 是两种广泛使用的自托管 Git 仓库管理工具,它们提供了仓库管理、权限控制、代码审查、CI/CD 等功能,是运维团队进行配…...
FMCW激光雷达深度剖析:从硅光芯片到车载落地的技术跃迁
1. FMCW激光雷达的技术本质:从硅光芯片到系统集成 第一次拆解FMCW激光雷达时,我被它的内部结构震撼到了——这哪里是传统意义上的激光雷达?分明是一个高度集成的光通信模块。与传统TOF激光雷达相比,FMCW最核心的突破在于它把测距原…...
ccmusic-database快速部署:Conda环境隔离安装torch+gradio无冲突指南
ccmusic-database快速部署:Conda环境隔离安装torchgradio无冲突指南 1. 项目简介与环境准备 ccmusic-database是一个基于深度学习的音乐流派分类系统,能够自动识别16种不同的音乐风格。这个系统结合了计算机视觉领域的VGG19_BN预训练模型和音频处理技术…...
