代码之家  ›  专栏  ›  技术社区  ›  Jeff

springboot jar运行,但不在docker容器内

  •  0
  • Jeff  · 技术社区  · 7 年前

    我最近停靠了一个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"]
    

    我错过了什么?

    0 回复  |  直到 7 年前