注意spring-boot-maven-plugin打包插件需要放在docker-maven-plugin插件上面,放在下面就会出现标题所说的错误
<build>
<finalName>${project.artifactId}</finalName>
<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.1</version>
<!--将插件绑定在某个phase执行-->
<executions>
<execution>
<id>build-image</id>
<!--将插件绑定在package这个phase上,也就是说,用户只需要执行mvn package,就会自动执行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--指定生成的镜像名-->
<imageName>exam/${project.artifactId}</imageName>
<!--指定标签-->
<imageTags>
<imageTag>${project.version}</imageTag>
</imageTags>
<!--指定Dockerfile 的位置,${project.basedir}:项目的根路径下-->
<dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>
<!--指定远程docker api地址-->
<dockerHost>http://192.168.124.13:2375</dockerHost>
<resources>
<resource>
<!--容器中自定义jar包存放的位置,及对应的target目录-->
<targetPath>/</targetPath>
<!--本地jar包所在路径-->
<directory>${project.build.directory}</directory>
<!--需要包含本地jar包名称,对应的是Dockerfile中添加的文件名-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<!--以下两行是为了docker push到DockerHub使用的-->
<!--<serverId>docker-hub</serverId>
<registryUrl>https://index.docker.io/v1</registryUrl>-->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
</plugins>
</build>