Springboot项目配置Maven插件打包Docker镜像
增加Dockerfile
由于springboot打出的包是一个fatjar,为了提高docker的打包速度,可以将lib等一些不太经常变化的资源文件单独做一个层出来。而fatjar怎么来unpack下面会提到,大体是使用maven-dependency-plugin插件的unpack。
创建的Dockerfile放置于项目的根目录下。
1 | FROM openjdk:8-jdk-alpine |
增加plugin
添加maven-dependency-plugin和maven-dependency-plugin两个插件如下:
1 | <plugin> |
注意事项
- maven插件顺序
从上至下依次为
spring-boot-maven-pluginmaven-dependency-plugindockerfile-maven-plugin
由于spring-boot-maven-plugin中的repackage会把springboot项目打成一个fatjar,它必须在maven-dependency-plugin的unpack之前执行,否则target/dependency目录中的文件结构将不会包含BOOT-INF和META-INF目录,造成后面Docker进行build时失败
- windows中需要配置
docker暴露出tcp://localhost:2375,否则无法build - 清除
~/.docker下的所有.pem文件(windows中是在C:\Users\{账号}\.docker),否则会出现javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?异常