在docker中使用外部jar依赖

问题描述 投票:0回答:1

我正在使用通过scope = system添加的外部jar,并将${basedir}/src/main/java/...添加为pom.xml中依赖项子组下的系统路径。 每当我从 IntelliJ 本地使用该项目时,都不会出现警告或错误。但是,当我尝试从 docker 容器启动 .jar 文件时,我得到了有关依赖项的异常。

我尝试通过 IntelliJ 中项目结构下的库添加 jar,并将 jar 添加到根目录下的 libs 文件夹中。 首先,我提供了绝对路径,但后来我将其更改为 ${basedir},因为绝对路径没有映射为 docker 容器上的卷。 有什么方法可以将外部 jar 与项目 jar 一起打包,以便我可以在 docker 容器中使用它?

java maven docker jar
1个回答
0
投票

IIUC 你至少有两个选择:

1.将 JAR 添加到新映像(根据上面的 @LexByte 建议)。

假设 JAR 位于主机上的

${PWD}/jars
中,并且您希望它们位于容器中的
${WORKDIR}/jars
中:

FROM [[original-image]]
WORKDIR ...
COPY ./jars ./jars

然后,确保您的代码通过

[[WORKDIR]]/jars/[[some-jar]]

引用 JAR

NB

[[WORKDIR]]
是您设置为容器工作目录的目录。

2.使用现有映像将 JAR 安装到容器中:

docker run ... --volume=${PWD}/jars:[[WORKDIR]]/jars ...

NB

[[WORKDIR]]
是您将用作容器工作目录的目录。这是 JAR 将安装在容器中的位置。

© www.soinside.com 2019 - 2024. All rights reserved.