问题:
在进行docker部署的时候,开始对项目进行打包,在启动该镜像时
[root@topcheer docker]# docker run -it 00494e3d4550
no main manifest attribute, in /app.jar
提示没有入口类信息
解决:
项目基于maven pom多模块的开发的,需要设置goal-repackage属性为true,否则打包后文件依赖文件没有一起打包,然后镜像内没有可以运行的程序文件
如下:2个打包插件都要,不然只有docker的会导致打包不完整。
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--加入下面两项配置--> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> <execution> <id>tag-image</id> <phase>package</phase> <goals> <goal>tag</goal> </goals> <configuration> <image>${docker.repostory}/${docker.image.prefix}/${project.artifactId}:1.0.1</image> <newName>${docker.repostory}/${docker.image.prefix}/${project.artifactId}:1.0.1</newName> </configuration> </execution>