首页 > 解决方案 > Springboot jar 运行,但不在 Docker 容器内

问题描述

我最近对一个 maven / springboot 项目进行了 docker 化。它在 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"]

我错过了什么?

标签: javamavendockerspring-boot

解决方案


推荐阅读