java - 应用程序构建成功但出现错误:运行图像时出现“没有主清单属性,在 app.jar 中”
问题描述
我正在尝试在 docker 上部署我的 spring boot 应用程序。我创建了一个 docker 文件,如下所示。
FROM registry.gitlab.com/client/micro/micro-services/baseimage/database-baseimage/tmo-main:database-baseimage-1.0.1f28a87b
ADD ./target/*.jar app.jar
ENV TZ=America/Los_Angeles
ENTRYPOINT ["java","-XX:+UnlockExperimentalVMOptions","-XX:+UseContainerSupport","-XX:MaxRAMFraction=1","-XX:+UseG1GC","-jar","app.jar"]
EXPOSE 8080
docker 文件构建良好,但是当我运行图像时,它会引发以下错误:
OpenJDK 64-Bit Server VM warning: Option MaxRAMFraction was deprecated in version 10.0 and will likely be removed in a future release.
no main manifest attribute, in app.jar
请注意,我的应用程序在 JDK 11、maven build 上运行,并且已经为 spring-boot-maven-plugin 添加了依赖项。我在互联网上找不到此查询的适当解决方案。因此要求提供此错误的原因和解决方案。
解决方案
通过在 spring-boot-maven-plugin 中将执行目标设置为“重新打包”解决了这个问题。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
推荐阅读
- html - 我可以获取所选选项的文本并将其存储在变量而不是选择选项值中吗
- c++ - 未解析的外部符号,对象指针数组
- three.js - 如何使用三个.js 在 Canvas 上覆盖具有给定坐标 X、Y、Z 的 3D 对象
- python - 如何模拟 tcp 服务器没有响应
- r - 无法在 conda 下加载 libRlapack.so 和 libRblas.so
- c# - C# NxOpen - 查找活动工作部件中的所有功能组
- firebase - 仅存储上传到 Firebase 存储的文件的“文件夹名/文件名.jpg”信息是否安全?
- python - 无法从 Python 2.7 访问 PySide2
- symfony - Bazinga 翻译包返回键
- flutter - 安装 Zefyr(Flutter) 时出错找不到方法:'SystemNavigator.routeInformationUpdated'