[英]Docker error: Exception in thread "main" java.lang.ClassNotFoundException
My maven-spring boot project runs fine when I do so outside of Docker.当我在 Docker 之外执行此操作时,我的 maven-spring boot 项目运行良好。 But once I dockerize it I get an "Exception in thread "main" java.lang.ClassNotFoundException" when I try to run it.但是一旦我将它 dockerize ,当我尝试运行它时,我会得到一个“线程“main”java.lang.ClassNotFoundException 中的异常”。 Searching this problem I'm told you need to make sure you have the spring-boot-maven-plugin in your plugin management and plugins inside pom.xml, and to include the main class therein.搜索这个问题我被告知你需要确保你的插件管理和 pom.xml 中的插件中有 spring-boot-maven-plugin,并在其中包含主类。 I've done this but the problem persists.我已经这样做了,但问题仍然存在。 My docker file looks like this:我的 docker 文件如下所示:
FROM maven:3.8.4-openjdk-17 as builder
RUN mkdir -p /home/maven
COPY src /home/maven/
COPY chg.json /home/maven/
COPY manifest-QA.yml /home/maven/
COPY manifest-za.yml /home/maven/
COPY manifest-zb.yml /home/maven/
COPY pom.xml /home/maven/
COPY service-account.json /home/maven/
COPY sonar-project.properties /home/maven/
COPY checkLocksmith.sh /home/maven/
COPY buildConfig.json /home/maven/
COPY settings.xml /home/maven/
WORKDIR /home/maven
RUN mvn -s ./settings.xml clean package
FROM openjdk:17-oracle
EXPOSE 8080
WORKDIR /home/maven
COPY --from=builder /home/maven/target/Program-0.0.1-SNAPSHOT.jar ./app.jar
ENTRYPOINT ["java","-jar","app.jar"]
The problem appeared to be with my Dockerfile.问题似乎出在我的 Dockerfile 上。 This is what I changed it to这就是我将其更改为
FROM maven:3.8.4-openjdk-17 as builder
WORKDIR /home/maven
COPY src src
COPY ./*.json .
COPY ./*.yml .
COPY ./*.xml .
COPY ./*.sh .
RUN mvn -s ./settings.xml clean package
FROM openjdk:17-oracle
EXPOSE 8088
WORKDIR /home/maven
COPY --from=builder /home/maven/target/Program-0.0.1-SNAPSHOT.jar ./app.jar
ENTRYPOINT ["java","-jar","app.jar"]
Please edit your docker file with:请使用以下命令编辑您的 docker 文件:
FROM maven:3.8.4 AS maven FROM maven:3.8.4 AS maven
WORKDIR /home/maven工作目录 /home/maven
COPY .复制 。 /home/maven /家/行家
FROM adoptopenjdk/openjdk17:alpine-jre FROM 采用openjdk/openjdk17:alpine-jre
ARG JAR_FILE=Program-0.0.1-SNAPSHOT.jar ARG JAR_FILE=程序-0.0.1-SNAPSHOT.jar
WORKDIR /home/maven工作目录 /home/maven
COPY --from=maven /home/maven/app/target/${JAR_FILE} /app复制 --from=maven /home/maven/app/target/${JAR_FILE} /app
ENTRYPOINT ["java","-jar","Program-0.0.1-SNAPSHOT.jar"]入口点 ["java","-jar","Program-0.0.1-SNAPSHOT.jar"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.