我最近将一个maven / springboot项目停靠。它在docker之外运行就好了,它甚至在docker容器中启动,但是当我尝试与应用程序交互时,我收到java.lang.ClassNotFoundException
。
我的理解是这与类路径有关,但为什么jar会在本地而不是在docker容器中运行?
缺少的类属于项目目录结构中的外部jar文件,并在pom.xml中作为依赖项列出:
<dependency>
<groupId>externalJar</groupId>
<artifactId>externalJar</artifactId>
<version>0.0.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/library/externalJar.jar</systemPath>
</dependency>
这是我的dockerfile:
FROM openjdk:8-alpine
RUN apk update && apk add bash
RUN mkdir -p /opt/app
ENV PROJECT_HOME /opt/app
COPY target/main.jar $PROJECT_HOME/main.jar
WORKDIR $PROJECT_HOME
EXPOSE 8282
CMD ["java", "-Djava.security.egd=file:/dev/./urandom","-jar","./main.jar"]
我错过了什么?