[英]Docker could not find or load main class in Java spring boot
我有一个简单的 spring 引导服务器,其结构如下:
.
├── Dockerfile
├── HELP.md
├── demo.iml
├── mvnw
├── mvnw.cmd
├── pom.xml
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── demo
│ │ │ ├── DemoApplication.java
│ │ │ ├── Employee.java
│ │ │ ├── EmployeeResource.java
│ │ │ ├── exceptions
│ │ │ │ └── UserNotFoundException.java
│ │ │ ├── repo
│ │ │ │ └── EmployeeRepo.java
│ │ │ └── service
│ │ │ ├── DockerFile
│ │ │ └── EmployeeService.java
│ │ └── resources
│ │ ├── META-INF
│ │ │ └── MANIFEST.MF
│ │ ├── application.properties
│ │ ├── static
│ │ └── templates
│ └── test
│ └── java
│ └── com
│ └── example
│ └── demo
│ └── DemoApplicationTests.java
└── target
├── classes
│ ├── META-INF
│ │ └── MANIFEST.MF
│ ├── application.properties
│ └── com
│ └── example
│ └── demo
│ ├── DemoApplication.class
│ ├── Employee.class
│ ├── EmployeeResource.class
│ ├── exceptions
│ │ └── UserNotFoundException.class
│ ├── repo
│ │ └── EmployeeRepo.class
│ └── service
│ └── EmployeeService.class
├── demo.jar
├── generated-sources
│ └── annotations
├── generated-test-sources
│ └── test-annotations
└── test-classes
└── com
└── example
└── demo
└── DemoApplicationTests.class
和我重合的 Dockerfile:
FROM "ANYONMOUS REPO" as builder
USER root
COPY src /src
ADD target/demo.jar demo.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","demo.jar"]
该服务器在本地运行时运行良好,但当我创建 docker 图像并尝试运行它时,出现以下错误:
Error: Could not find or load main class com.example.demo.DemoApplication
。
I am not sure how I would go about targeting the main class in the package itself, I tried using this command in my Dockerfile: CMD java -classpath src/java com.example.demo
in an attempt to target this package but I still get同样的错误。 有没有不同的方法来定位 Jar 文件和 Docker 中的主要 class?
我遇到了类似的问题。 您可以尝试以下操作;
第 1 步:将以下内容添加到您的 pom.xml。
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
</build>
第 2 步:清理并构建您的项目。 这应该在您的 META-INF/MANIFEST.MF 中自动为“Main-Class”指定一个值
mvn clean package spring-boot:repackage
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.