springboot 适配ARM 架构

news2024/11/15 10:37:23
  1. 下载对应的maven    

    https://hub.docker.com/_/maven/tags?page=&page_size=&ordering=&name=3.5.3-alpine
    
    docker pull maven:3.5.3-alpine@sha256:4c4e266aacf8ea6976b52df8467134b9f628cfed347c2f6aaf9e6aff832f7c45

2、下载对应的jdk

https://hub.docker.com/_/openjdk/tags?page=&page_size=&ordering=&name=8u332

docker 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 $HPASSWD
                    docker 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 $HPASSWD
                    docker push reg.xxx.com/dev/xx-arm64:1.0
                    '''
                }
            }
        }
    }
}

对应的DockerFile

ARG BASE_IMAGE
FROM ${BASE_IMAGE}
 
ADD target/xxx.jar  /opt/xxx.jar
 
WORKDIR /var/www/app

EXPOSE 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" ]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1927412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ceph集群部署(基于ceph-deploy)

目录 部署Ceph集群的方法 Ceph生产环境推荐 部署Ceph实验(基于ceph-deploy) 一、准备工作 二、环境准备 1.关闭selinux与防火墙 2.修改主机名并且配置hosts解析映射 3.admin管理节点配置ssh免密登录node节点 4.安装常用软件和依赖包 5.配置时间…

【全网最全最详细】Spring与SpringBoot最新面试题

目录 一、Spring框架概述 1.1 什么是Spring? 1.2 spring优点有哪些? 二、IOC与DI 2.1 你知道getBean方法的有几种重载方式吗? 2.2 Spring有几种依赖注入方式? 2.3 为什么Spring不建议使用字段注入方式? 2.4 B…

数据结构_顺序表专题

何为数据结构? 咱今天也来说道说道...... 数据结构介绍 准确概念 数据结构就是计算机存储、组织数据的方式 概念分析 从上句分析,数据结构是一种方式。一种管理数据的方式。为了做什么?为的就是计算机存储数据,组织数据。 …

docker部署seata 2.0.0

环境准备 当前使用的环境: MySQL:8.0 nacos:2.2.3 关于如何在docker中部署nacos 2.2.3,请参考之前文章: docker部署nacos 2.2.3 拉取镜像 docker pull seataio/seata-server:2.0.0查看nacos、mysql、宿主机的ip d…

探索Facebook:数字社交的魔力源泉

在当今信息爆炸和全球互联的时代,社交媒体平台成为了人们生活中不可或缺的一部分。而在这些平台中,Facebook无疑是最具影响力和创新性的代表之一。自2004年成立以来,Facebook不仅改变了人们的沟通方式,更通过不断的技术创新和用户…

Oracle查询超时问题,聊聊思路!

🏆本文收录于《CSDN问答解答》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&…

【系统架构设计师】九、软件工程(面向对象方法|逆向工程)

目录 六、面向对象方法 6.1 基本概念 6.2 面向对象的分析 6.2.1 用例关系 6.2.2 类之间的关系 6.3 面向对象的设计 6.4 面向对象设计原则与设计模式 6.5 面向对象软件的测试 七、逆向工程 历年真题练习 六、面向对象方法 面向对象的分析方法 (Object-Oriented Analys…

C++初阶:类和对象(二)

✨✨所属专栏:C✨✨ ✨✨作者主页:嶔某✨✨ 类的默认成员函数 默认成员函数就是用户没有显式实现,编译器会⾃动⽣成的成员函数称为默认成员函数。⼀个类,我们不写的情况下编译器会默认⽣成以下6个默认成员函数,需要注…

Verilog基础:简单标识符和转义标识符

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 标识符(identifier)是一个为了引用而给一个对象起的名字。一个标识符可以是一个简单标识符,也可以是一个转义标识符。本文将对两者进行详细阐述。 简…

ctfshow-web入门-php特性(web109-web115)

目录 1、web109 2、web110 3、web111 4、web112 5、web113 6、web114 7、web115 1、web109 正则匹配要求 v1 和 v2 都包含字母,eval 函数将字符串作为 PHP 代码执行:new $v1 创建一个名为 v1 的类的实例,($v2()) 调用 v2 方法&#xff…

使用Nginx OpenResty与Redis实现高效IP黑白名单管理

1、引言 在当今数字化时代,网络安全已成为企业和个人用户关注的焦点。IP黑白名单作为一种有效的网络安全策略,允许我们精确控制对Web资源的访问权限。通过白名单,我们可以确保只有可信的IP地址能够访问敏感资源;而黑名单则可以阻…

gptpdf:使用大模型(如 GPT-4o)将 PDF 解析为 markdown。

今天给大家分享一个开源的项目, 使用视觉大语言模型(如 GPT-4o)将 PDF 解析为 markdown。 方法非常简单(只有293行代码),但几乎可以完美地解析排版、数学公式、表格、图片、图表等。 使用 GeneralAgent lib 与 OpenAI API 交互。…

链接追踪系列-08.mac m1安装logstash-番外

下载地址:https://elasticsearch.cn/download/ 配置es相关: #安装plugin: jelexbogon bin % ./logstash-plugin install logstash-codec-json_lines启动:指定配置文件运行 jelexbogon bin % nohup ./logstash -f ../config…

破解YouTube限制:保姆级教程,轻松查看博主邮箱

近期YouTube取消了博主的邮箱展示,这造成了不小的轰动,给想要联系博主的粉丝和想要寻求网红合作的品牌都带来了极大的不便。但这难不倒万能的网友!最新发现,通过一串神秘代码可以在YouTube上查看到博主的邮箱,这里Nox聚…

微信小游戏 彩色试管 倒水游戏 逻辑 (二)

最近开始研究微信小游戏,有兴趣的 可以关注一下 公众号, 记录一些心路历程和源代码。 定义一个 Water class 1. **定义接口和枚举**: - WaterInfo 接口定义了水的颜色、高度等信息。 - PourAction 枚举定义了水的倒动状态,…

Gil-Pelaez inversion

一、特征函数 A.随即变量的特征函数定义与性质 B.特征函数与PDF的关系 傅里叶变换:C.特征函数与矩函数关系 二、Gil-Pelaez反演定理 输入功率 P i n P_{in}

Kotlin标准函数(语法糖)let with run also apply快速讲解

目录 1、知识储备——扩展函数 原理 定义扩展函数 调用扩展函数 2、返回值为上下文对象的标准函数 apply also 3、返回值为Lambda表达式结果 let run with 4、一表总结 1、知识储备——扩展函数 原理 Kotlin 在不继承父类或实现接口下,也能扩展一个类的…

Linux进程通信--共享内存

文章目录 概述共享内存基本原理共享内存的操作创建共享内存函数接口形成key--fotk创建共享内存代码演示补充指令集--ipc的指令key和shmid区别创建并获取共享内存代码 删除共享内存函数接口删除共存内存函数代码演示 共享内存段连接到进程地址空间函数接口代码演示 取消关联代码…

真空油炸机的特点是什么?

真空油炸机的特点,如同一位技艺精湛的厨师,不仅确保了食材的完美呈现,更在科技与传统工艺之间找到了完美的平衡。 首先,真空油炸机以其独特的真空环境,为食材打造了一个低氧、低压的烹饪空间。在这样的环境中&#xff…

LabVIEW比例压力控制阀自动测试系统

开发了一套基于LabVIEW编程和PLC控制的比例控制阀自动测试系统。该系统能够实现共轨管稳定的超高压供给,自动完成比例压力控制阀的耐久测试、流量滞环测试及压力-流量测试。该系统操作简便,具有高精度和高可靠性,完全满足企业对自动化测试的需…