springboot 适配ARM 架构

news/2024/8/21 6:06:57 标签: spring boot, 架构, java
  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.niftyadmin.cn/n/5556117.html

相关文章

区块链与云计算的融合:新时代数据安全的挑战与机遇

随着信息技术的迅猛发展,云计算和区块链技术作为两大前沿技术在各自领域内展示出了巨大的潜力。而它们的结合,即区块链与云计算的融合,正在成为数据安全领域的新趋势。本文将探讨这一融合对数据安全带来的挑战和机遇,以及其在企业…

C++版OpenCV_01_图像数字化

图像数字化&#xff0c;持续更新中 OpenCV中Mat类中的常用函数 OpenCV中Mat类中的常用函数 读入图像 #include<opencv2/core.hpp> #include<opencv2/highgui.hpp> using namespace std;int main(int argc,char*argv[]) {// 读入原始图像Mat img imread(argv[1],…

C++ 类和对象 赋值运算符重载

前言&#xff1a; 在上文我们知道数据类型分为自定义类型和内置类型&#xff0c;当我想用内置类型比较大小是非常容易的但是在C中成员变量都是在类(自定义类型)里面的&#xff0c;那我想给类比较大小那该怎么办呢&#xff1f;这时候运算符重载就出现了 一 运算符重载概念&…

论文翻译:Explainability for Large Language Models: A Survey

https://arxiv.org/pdf/2309.01029 目录 可解释性在大型语言模型中&#xff1a;一项调查摘要1 引言2 LLMs的训练范式2.1 传统微调范式2.2 提示范式 3 传统微调范式的解释3.1 局部解释3.1.1 基于特征归因的解释3.1.2 基于注意力的解释3.1.3 基于示例的解释 3.2 全局解释3.2.1 基…

ElementUI el-select 组件动态设置disabled后,高度变更的问题解决办法

问题描述 Vue2 项目在使用 el-select 组件时&#xff0c;动态将disabled变更为了 true&#xff0c;元素的高度发生了变化。 问题原因 通过浏览器开发人员工具面板&#xff0c;发现&#xff0c;组件内的 input 元素被动态设置了height的样式&#xff1a; 在项目中检查后并…

Python常用的数据分析和可视化库

Python 也有很强的数据分析和可视化能力&#xff0c;拥有许多强大的框架和库。以下是一些 Python 中常用的数据分析和可视化库&#xff1a; Python 的数据分析库 Pandas&#xff1a;Pandas 是一个强大的数据分析和数据处理库&#xff0c;提供了高效的数据结构和数据分析工具。…

Flutter对接FlutterBugly 报错Zone mismatch

在Flutter对接FutterBlugy时报如下错误: Unhandled Exception: Zone mismatch. E/flutter ( 1292): The Flutter bindings were initialized in a different zone than is now being used. This will likely cause confusion and bugs

RK3568笔记三十七:按键驱动实验(设备树)

若该文为原创文章&#xff0c;转载请注明原文出处。 一、编程思路 程序编写的主要内容为添加 key 的设备树节点、在驱动程序中使用 of 函数获取设备节点中的属性&#xff0c;编写测试应用程序。 • 首先向设备树添加 key 设备节点。 • 其次编写平台设备驱动框架&#xff0c;…