docker logs 查看日志 出现Invalid or corrupt jarfile /app.jar,或者容器刚运行起来就exit,restart都不管用

本文解决了一个常见的Dockerfile配置错误,即如何正确加载和引用jar包,避免'invalid or corrupt jar file'错误。通过调整ADD指令的目标路径,确保应用程序能够正确识别并加载jar文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于自己是从基础开始,免不了看博客,复制粘贴docker file文件。

看博客有提到是,原封不动地copy 别人的dockerfile文件,jar包的名称没有改变,但是我觉得应该不会犯这个错误。

或者是自己的jar包就有问题,我们可以自己在idea里面运行成功后,再install,确保保证jar包的正确性。

以上是可能的两个错误。

经过分析后,出现的英文invalid or corrupt jarfile /app.jar,中文意思是jarfile/app.jar无效或损坏
我觉得是app.jar这个文件根本不存在,启动jar包命令,读取不到这个包,附上之前错误的时候的dockerfile,也是在网上复制粘贴的一份,没有经过思考,导致出现错误,耽误时间

FROM  jdk1.8:latest
ADD docker-0.0.1-SNAPSHOT.jar   app.jar
EXPOSE 8087
ENTRYPOINT ["java","-jar","/app.jar"]

图中,就是在ADD指令出现错误。
ADD指令
ADD指令的功能是将主机构建环境(上下文)目录中的文件和目录、以及一个URL标记的文件 拷贝到镜像中。
其格式是: ADD 源路径 目标路径

如果源路径是个文件,且目标路径是不是以 / 结尾,则docker会把目标路径当作一个文件。
如果目标路径不存在,会以目标路径为名创建一个文件,内容同源文件;
所以此处犯的错误就是,目标路径app.jar不是一个路径,需要加上“/”,变为

FROM  jdk1.8:latest
ADD docker-0.0.1-SNAPSHOT.jar   /app.jar
EXPOSE 8087
ENTRYPOINT ["java","-jar","/app.jar"]

修改完dockerfile后,再次docker build,docker run,就可以成功运行了。
自此,就完成了springboot jar包,打包到自己的镜像,并成功运行。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值