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

docker后端jar包本地构建镜像

一 、背景

前面通过直接替换jar包的方式更新推送后端服务的方式很好用( 见文章),但这样子替换后重新打包会导致镜像越来越大,这样子对镜像仓库的空间造成很大浪费。问题如下图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看出从2025年3月到10月的短短7个月时间里该后端包从300多M一路暴涨到将近10G,正常的新增功能是不可能增加这么多的。因此,很有可能是每次替换jar后,commit生成新镜像都会产生大量对后端功能无意义的数据,我们需要换种方法去生成镜像。

二、本地构建镜像

询问得知开发人员一般通过docker build方法构建镜像然后提供给现场人员使用,因此这里可以尝试在本地构建
第一,需要准一个构件使用的java环境,这里最快捷的就是使用jdk基础镜像:
在这里插入图片描述
这里我使用的是arm架构centos的jre镜像,这个镜像环境可以自己制作(可参考文章,需要联网状态),也可以直接找自己单位的开发人员要(推荐该方法,避免重复工作)。
第二,需要编写一个dockerfile文件

//在宿主机用命令新建空白文件
vi Dockerfile
//输入以下内容,#是注释:
#告诉docker将使用以下基础java镜像来构建后端镜像
FROM 192.168.10.156/fpa/centos_jre_font:2.0_arm
#将当前宿主机器当前目录下的jar复制到将要生成的镜像下的/opt/docker目录下
ADD ./your_app.jar /opt/docker/
#镜像将使用的端口,这个可以问程序提供的开发人员确定
EXPOSE 8103
#镜像内的jar包的启动语句,估计会在docker run时使用
CMD java ${JAVA_OPTS} -jar /opt/docker/your_app.jar

第三,将jar包和dockerfile放在同一个文件夹下,并通过以下命令构建:

//  其中-f 表示要调用第二步的dockerfile文件,-t 为镜像名称,格式为  镜像名:版本号
//特别地,如果后续还需远程推送镜像,则镜像名需带地址和目录,参考本例子
//注意版本号末尾还有空格和一个“.”,这个"."是必须的,否则会报错
docker build -f Dockerfile -t 1.5.21.2:304/100010023/imagename:25.101601-prod .

构建成功后,获得一个干净的镜像,就不会像之前那样几个G甚至是上10G:
在这里插入图片描述
可以看出镜像为900多M,因为这里没采用任何优化手段,根据相关信息,如果优化一下构建,还能更小,但已经比之前小了很多,并且采用本地构建的方式很适合跟远程推送做一起,实现自动化。

三、本地构建和远程推送一条龙


#从屏幕读入版本号
read -p "输入构建版本号: " bno
# 捕捉构建是否成功
if docker build -f Dockerfile -t 1.5.21.2:304/100010023/imagename:$bno .; thenecho "imagename构建成功!"
elseecho "imagename构建失败!"
fi
#捕捉推送是否成功
if docker push  1.5.21.2:304/100010023/imagename::$bno; thenecho "imagename推送成功!"
elseecho "imagename推送失败!"
fi
http://www.dtcms.com/a/491173.html

相关文章:

  • Spring Boot 3零基础教程,Spring Boot 日志的归档与切割,笔记22
  • 序列化的几种常见方式
  • 蜜罐技术重塑网络安全新格局
  • 做网站需要用到的符号语言基于网站开发的app
  • 企业管理咨询网站gta买办公室网站建设中
  • Python 的 typing 库介绍
  • 33. C++ cout cin 文件IO
  • 腾讯地图时空智能开放平台MCP接入说明
  • 10.15考研笔记
  • 计算机操作系统文件管理——文件系统挂载
  • ForkJoinPool 核心的任务分配与执行
  • 沧州网站改版优化app的制作需要多少钱
  • 提示词工程优化
  • 小程序商城开源最新seo新手教程
  • Android Studio USB串口通信
  • 数据结构的复习(1):
  • Python爬虫第5课:正则表达式与数据清洗技术
  • 自己做背景的网站app商城软件
  • 网页网站模板2023重大新闻事件10条
  • h5游戏免费下载:极限超车
  • Linux之认识理解目录
  • HarmonyOS Next 学习文档总览 [特殊字符]
  • 织梦微信网站模板wordpress4.9.4漏洞
  • oracle删除表与表空间清理机制
  • 企业怎么样上各大网站做宣传网站pv统计方法
  • 如何建网站挣钱广告公司加盟代理哪家好
  • 渗透测试前期信息收集节点的网址和工具简单总结
  • 从ChatGPT到新质生产力:一份数据驱动的AI研究方向指南
  • 企业建站系统信息求好的设计网站
  • IntelliJ IDEA 打包 Web 项目 WAR 包(含 Tomcat 部署+常见问题解决)