2024年最新怎么把一个Java应用打包成Docker镜像,java一年经验面试题

感受:

其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。

特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。

也祝愿各位同学,都能找到自己心动的offer。

分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档

拿到字节跳动offer后,简历被阿里捞了起来,二面迎来了P9"盘问"

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

project

│ pom.xml

└───src // 源文件目录

│ │

│ └───main

│ │

│ └───java

└───target // class和jar文件的目录

用mvn clean package打包后会把JAR文件生成在target目录里,通过java -jar命令即可执行编译好的程序。

所以上面的Dockerfile里就进行了把JAR从target目录里添加到Docker镜像中以及将jar -jar /application.jar 设置成容器的启动命令这两步操作。

不过除了这种最原始的方法外我们还可以使用Maven的一些插件,或者Docker的多阶段打包功能来完成把Java应用打包成Docker镜像的动作。

Maven插件构建镜像

===========

Spotify公司的dockerfile-maven-plugin和Google公司出品的jib-maven-plugin是两款比较有名的插件,下面简单介绍一下dockerfile-maven-plugin的配置和使用。

其实使用方法很简单,我们在POM文件里引入这个plugin,并结合上面那个Dockerfile就能让插件帮助我们完成应用镜像的打包。

com.example

hello-spring

0.0.1-SNAPSHOT

helloworld

com.spotify

dockerfile-maven-plugin

1.4.10

default

build

push

d o c k e r . r e g i s t r y . u r l / {docker.registry.url}/ docker.registry.url/{image.prefix}/${artifactId}

${project.version}

<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>

插件里使用的docker.registry.url和image.prefix是我单独为Docker的镜像仓库设置的属性。

<java.version>1.8</java.version>

<image.prefix>kevinyan001</image.prefix>

<docker.registry.url></private.registry.url>

这里可以随意设置成私有仓库的远程地址和镜像前缀,比如在阿里云的镜像服务上创建一个叫docker-demo的空间,上面的属性就需要这样配置:

<java.version>1.8</java.version>

<image.prefix>docker-demo</image.prefix>

<docker.registry.url>registry.cn-beijing.aliyuncs.com</docker.registry.url>

在POM文件里配置好插件后伴随着我们打包应用执行mvc clean package操作时dockerfile-maven-plugin就会自动根据我们的配置打包好一个叫做kevinyan001/hello-spring:0.0.1-SNAPSHOT的Docker镜像。

dockerfile-maven-plugin除了能帮助我们打包应用镜像外还可以让它帮助我们把镜像push到远端仓库,不过我觉得用处不大,感兴趣的同学可以去网上搜搜看这部分功能怎么配置。

用Docker的多阶段构建打包镜像

最后

金三银四到了,送上一个小福利!

image.png

image.png

专题+大厂.jpg

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

需要这份系统化的资料的朋友,可以点击这里获取

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值