我最近停靠了一个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>
这是我的档案:
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"]
我错过了什么?