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-plugin
maven-dependency-plugin
dockerfile-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?
异常