当前位置: 首页 > news >正文

springboot 适配ARM 架构

  1. 下载对应的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" ]

http://www.lryc.cn/news/400540.html

相关文章:

  • ElementUI el-select 组件动态设置disabled后,高度变更的问题解决办法
  • 写个网络爬虫
  • 模板方法模式的实现
  • Redis的计数功能
  • WPF学习(7) --MVVM模式
  • 【人工智能】-- 受限玻尔兹曼机
  • 在 Android 中定义和使用自定义属性
  • 【实战:python-Django发送邮件-短信-钉钉通知】
  • Todo List
  • 【Redis】Redis十大类型
  • 存储实验:Linux挂载iscsi硬盘与华为OceanStor创建LUN全流程
  • 高可用系统架构设计技术方案:Java架构师视角
  • C++ --> 类和对象(三)
  • JS【详解】类 class ( ES6 新增语法 )
  • vue中使用$set方法给对象添加属性
  • 【Python】ftplib的使用
  • CSS 【详解】CSS 函数(含 calc,min,max,clamp,cubic-bezier,env,steps 等)
  • 简单理解Lua 协程(coroutine)
  • (day18) leetcode 204.计数质数
  • SadTalker数字人服务器部署
  • Python实现一对多WebSocket发送给指定多个客户端
  • Power BI 工具介绍
  • 银河麒麟高级服务器操作系统V10加固操作指南
  • (leetcode学习)15. 三数之和
  • 算法训练 | 图论Part8 | 117. 软件构建、47. 参加科学大会
  • 编程从零基础到进阶(更新中)
  • MySQL运维实战之ProxySQL(9.6)SQL黑名单
  • 深入了解MySQL中的innodb_lock_wait_timeout
  • 102.qt qml-最全Table交互之多列固定、行列拖拽、自定义委托、标题交互使用教程
  • 文章管理小程序的设计