【问题标题】:Dockerfile: How to put a .jar in the PATHDockerfile:如何将 .jar 放入 PATH
【发布时间】:2021-01-30 09:09:14
【问题描述】:

我想将.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" ]

【问题讨论】:

  • 您是否从包含 jar 文件的目录运行 docker build。
  • 你也可以添加错误日志吗?

标签: java docker dockerfile


【解决方案1】:

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 调用。

【讨论】:

  • 嗨,RUN sn-p 中似乎有一个不需要的尾随反引号
  • 啊,谢谢@ErikMD,一直在发生。我是一个长期的平台用户,并且对我无法投票响应感到恼火。所以目前刚刚开始为 StackOverflow 做贡献,所以刚刚有足够的业力去做一些事情。如果有什么东西——我更喜欢互相修正错别字——如果业力访问允许,它会减少一两个步骤/秒。
猜你喜欢
  • 2017-03-16
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
  • 2016-10-09
  • 2023-04-02
  • 2017-11-09
  • 2014-11-11
  • 1970-01-01
相关资源
最近更新 更多