java - 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" ]
解决方案
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
按预期由文字名称调用。
推荐阅读
- excel-formula - Vlookup 返回最小值而不是第一个找到的值
- python - 如何告诉 pytype 实例是抽象基的子类,而不是抽象基本身?
- pygame - 玩家总是与敌人接触
- debian - 在各种主机上创建多节点期间的持续问题
- ios - UIScrollView 中的灵活垂直间距
- python-3.x - 覆盖 argparse 参数与父解析器有奇怪的交互
- git - 为什么切换分支时 Visual Studio 不删除文件/文件夹?
- mysql - 如何在 SQL/phpmyadmin 中执行此操作?
- python - 用于 groupby 重新采样的数据框 ewm
- python - 如何在 Django 模型中设置 ManyToOneRel