docker容器中运行jar 出现invalid or corrupt jarfile

1,背景:

在本地java开发完毕之后,想要打包成docker镜像,方便安装。由于本地没有docker环境,也懒得装了。有一台测试的linux机器可以使用,所以先在本地打包生成xxx.jar,然后拷贝到有docker环境的linux机器上,生成docker镜像,以及使用镜像做成docker容器。

启动之后,发现报错:

复制代码
invalid or corrupt jarfile
2,思路

从报错信息来看,容器里面已经有了jar包,但是这个jar包不能执行,被破坏掉了。

这边jar的传递有两步,第一是win10系统到Linux系统,第二是Linux本地拷贝到Docker容器。

1)确认本地的jar是否正常(发现本地启动之后,可以正常跑)->那么win10本地的jar是正常的

2)第二步的拷贝,使用dockerfile拷贝,正常情况下,要么命令错误,没有拷贝到容器的镜像里面->确认了一下容器里面是有jar的,那么这个拷贝大概率没有问题。

3)考虑linux里面的xxx.jar已经有问题了。那么大概率是从本地win10系统到Linux的拷贝出问题。

3,原因

在失败之前,有传输jar,生成docker成功过。突然报错有点奇怪。

后来我想起来文件winscp进行文件传输的时候,传输方式有多种,之前是默认的Default()。中间传输别的文件的时候把这个改成了file(文件),使用file方式传输jar,尝试将这边的传输方式改成default,就能够正常跑了。

至于为什么会有这样的问题,暂时还不是特别清楚,猜测是linux系统和win10系统的换行导致?有知道的童鞋欢迎解释一下。

图片来源:winscp图片

mark一下

相关推荐
凯子坚持 c16 分钟前
在家搭个私人云音乐库?用 Docker+cpolar 随时随地听歌
运维·docker·容器
!chen17 分钟前
让镜像构建更轻量,告别 Docker 依赖
运维·docker·容器
野蛮人6号19 分钟前
黑马微服务 p23Docker02 docker的安装 如何正确安装docker,黑马微服务给的文档不行了,如何正确找到解决方法
java·docker·微服务·架构
2503_9301239320 分钟前
Docker全阶段详解
运维·docker·容器
appleyk28 分钟前
MacOS-12(Intel) Docker部署Dify1.11.1
macos·docker·agent·dify·dify部署
眠りたいです1 小时前
Docker:认识Docker镜像仓库并进行拉取推送
运维·nginx·docker·容器·busybox
计算机小手1 小时前
使用轻量级中间件 VoidAuth 快速构建站点SSO,支持Docker一键部署与Nginx快速接入
经验分享·docker·中间件·开源软件
会飞的小蛮猪1 小时前
K8s-1.29.2二进制安装-第三章(Node组件 及其他插件安装)
云原生·容器·kubernetes
ByteBlossom2 小时前
Docker虚拟化技术实践
docker
weixin_462446232 小时前
【原创实践】使用 Docker 部署 IntelliJ IDEA(linuxserver/intellij-idea)完整指南
docker·容器·intellij-idea