首页 > 解决方案 > Dockerfile:如何将 .jar 放入 PATH

问题描述

我想.jar在 VM PATH (在 Linux 中)中放置一个,但是当我运行容器时,它显示我找不到放置在 PATH 中的链接。

Dockerfile

FROM amancevice/pandas:1.2.1
RUN apt-get update -yq \
&& apt-get install nodejs -yq \
&& apt-get clean -y 
FROM store/oracle/serverjre:1.8.0_241-b07
COPY *.jar /Files/
CMD [ "PATH=$PATH:/Files/json-simple-1.1.jar" ]

标签: javadockerdockerfile

解决方案


CMD你可能想要的是这样的:

CMD ["java","-jar","/Files/json-simple-1.1.jar"]

如果您真正想要的是运行jar- 则PATH不需要更改,因为java已经在PATH


但是,如果您jar可以直接作为可执行文件(或作为 Java 脚本)运行并且这就是您想要的 - 直接运行它 - 请检查*.jar您复制的文件在 Docker 映像中是否具有可执行权限。

RUN chmod u+x /Files/*.jar

PATH不允许直接向其中添加可执行文件 -PATH=$PATH:/Files/json-simple-1.1.jar不起作用。PATH只允许添加到它的目录,并在这些目录中搜索可执行文件。

所以:

ENV PATH="${PATH}:/Files"

应该继续工作并正确扩展环境变量。然后,如果jar是可执行的 - 它可以json-simple-1.1.jar按预期由文字名称调用。


推荐阅读