当我尝试运行我的jar时,我得到Error: Unable to access jarfile jar-runner.jar
。
Dockerfile:
FROM anapsix/alpine-java
MAINTAINER bramhaag
CMD ["java", "-jar", "jar-runner.jar", "some param", "some param"]
jar文件位于/home/selfbot/中,我正在使用Portainer运行此文件。这是我的Portainer容器的样子:
我该怎么做呢?
发布于 2019-01-25 01:13:15
通过CMD [ ]
"exec“格式,Docker将尝试查看这些论点,并就其有用性给出自己的看法。"Unable to access jarfile“是一条Docker消息,它只是意味着Docker有一些(未指明的) jarfile问题。例如,当jarfile的名称包含ENV
变量时,我就遇到过这种情况。显然,Docker无法处理这个问题。
还有CMD
的“外壳”格式CMD java -jar jar-runner.jar "some param" "some param"
。这就是所谓的外壳格式,因为Docker将参数传递给/bin/sh -c
。因此,它不会试图猜测这些参数的含义。反过来,sh
也不会试图变得聪明。而且java
完全能够使用jar-runner.jar
。
请注意,如果你在jar-runner.jar
中有一个打字错误,或者你把它放在了错误的位置,那么Docker的信息可能是正确的。当Docker猜测错误时,shell解决方法非常有用。
发布于 2017-04-30 07:06:19
看起来您已经挂载了卷,因此假设您是正确的,即jar文件可以通过该卷在容器中使用,那么您可能只需要指定它的路径,以便java可以找到它。
CMD ["java", "-jar", "/home/selfbot/jar-runner.jar", "some param", "some param"]
您可以通过运行不同的命令来检查该文件是否真的可用,以便只显示给定目录的内容。将命令(在Portainer中)更改为如下所示
ls -la /home/selfbot
然后,您可以验证jar文件是否确实在您认为的位置,它是否可读,等等。此命令将立即退出,但其输出将在容器日志中可用。
发布于 2018-03-28 07:00:10
试一试
ENTRYPOINT ["java","-jar","jar-runner.jar"] CMD ["some param"]
我在我的帖子中遇到了类似的问题:Error: Unable to access jarfile when running docker container
https://stackoverflow.com/questions/43701062
复制相似问题