个人解决问题的记录,仅供参考。

一、问题现象

我使用SoringBoot + Gradle 搭建的Java项目,通过Dockerfile 去构建镜像。在执行如下命令时:

 docker run -d -p 8080:8080 --name xxxx imagename:tag

容器不能正常启动运行,通过命令

docker logs 容器ID

查看时,提示

No main manifest attribute,in xxxx.jar

问题原因:因为build.gradle文件缺少了gradle的打包插件

二、解决方式

build.gradle文件中,补充添加 spring-boot-gradle-plugin



apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

buildscript {
   ...
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.3.7.RELEASE")
       ...
    }
}
...

dependencies {
 //框架包
...
}

重新打包制作docker 镜像。

参考文章

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐