当前位置:   article > 正文

docker报错问题解决:Error Invalid or corrupt jarfile app.jar_error: invalid or corrupt jarfile app.jar

error: invalid or corrupt jarfile app.jar

1.问题描述

此时处在 /home/ubuntu/app 目录下,并且在该目录下有一个 jenkins-0.0.1-SNAPSHOT.jar。

image-20231018182036352

我在 /home/ubuntu/app 目录下执行了 docker 容器运行命令:

# 映射 8859 端口
# 容器名为 jenkins-demo
# 将 jenkins-0.0.1-SNAPSHOT.jar 复制到容器内的 /app.jar
# 以 jdk11 为容器镜像
# 执行命令 java -jar /app.jar 运行 java 程序
docker run -dp 8859:8859 \
--name jenkins-demo \
-v jenkins-0.0.1-SNAPSHOT.jar:/app.jar \
openjdk:11 \
java -jar /app.jar
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

但遗憾的是,当我执行命令后,并没有运行起来。

image-20231018182646207

2.问题分析

我们先查看一下日志:

image-20231018182729759

提示错误信息:Error: Invalid or corrupt jarfile /app.jar

该错误表示的是 jar 文件无效或损坏,于是我开始考虑是不是 -v 挂载有问题。

于是我使用 docker inspect jenkins-demo 查看该容器信息,特别是挂载情况。然后查看 Mounts 下的信息:

image-20231018185125451

我发现 jenkins-0.0.1-SNAPSHOT.jar 成了数据卷名称,/app.jar 是容器内的目录。

这时候我才突然想起来,如果在 -v 时直接写个名称,那么 docker 会将它识别为是一个数据卷名称而不是本地文件或目录名。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/835631
推荐阅读
相关标签