You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地正常运行的Kotlin JWT认证应用Docker部署报No main manifest attribute错误

问题原因及解决办法

你的问题出在Dockerfile的两个关键错误上:

  • 文件名不匹配:你通过ADD命令将/target/application-SNAPSHOT.jar.original重命名为application.jar,但ENTRYPOINT里却指定运行forum.jar——容器里根本没有这个文件,这是直接的运行错误。

  • 选了未包含主清单的原始jar:application-SNAPSHOT.jar.original是Maven插件(比如Spring Boot Maven Plugin)处理前的原始jar包,这个jar的META-INF/MANIFEST.MF里没有配置Main-Class属性,所以用java -jar执行时会提示"No main manifest attribute"。你本地运行正常,是因为你实际跑的是插件处理后的完整jar(通常是不带.original后缀的application-SNAPSHOT.jar)。

修正后的Dockerfile示例:

FROM chainguard/jdk-lts
EXPOSE 8080
# 复制Maven插件处理后的完整jar包
ADD /target/application-SNAPSHOT.jar application.jar
# 运行正确的jar文件名
ENTRYPOINT ["java", "-jar", "application.jar"]

额外验证步骤:

  • 先在本地执行java -jar target/application-SNAPSHOT.jar确认能正常启动,而java -jar target/application-SNAPSHOT.jar.original会出现和容器里一样的报错,以此验证jar包的正确性。
  • 构建镜像时,确保Docker命令的执行目录能访问到target目录(即项目根目录),避免找不到jar包的问题。

内容的提问来源于stack exchange,提问作者Douglas Martins Santos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 09:32:40