概述
使用spotify的dockerfile maven插件,可以帮助我们将maven与docker进行集成,更快速的在maven构建过程中进行docker镜像的打包操作。
配置仍然是基于Dockerfile的,插件只是辅助。
请注意,插件的名称是 spotify 的 dockerfile-maven-plugin ,而非 docker-maven-plugin 。
详情可访问 github页面
准备工作
首先准备一个spring-boot工程,假设工程名为playground。另外本机需要安装docker,过程都不再赘述。
本文平台为macOS12,docker在不同平台下可能有所差异。
由于dockerhub访问较慢,可以用$$先自行搭建一个socks5代理来加速访问。代理不是必须的。
1 | export ALL_PROXY=socks5://xx.xx.xx.xx:xx |
建立Dockerfile
在工程目录下新建一个Dockerfile,基于openjdk的镜像:
1 | FROM openjdk:8-jdk-alpine |
使用docker命令构建镜像
在使用Maven插件之前,可以试着先用docker命令来进行打包:
1 | docker build -t="yourname/playground:latest" . |
查看镜像是否生成:
1 | docker images |
然后可以使用docker push
推送镜像:
1 | docker push yourname/playground |
编辑pom.xml
测试通过后,就可以在pom.xml中添加spotify插件了
1 | <properties> |
另外还可以添加一个execution,在maven的install生命周期自动进行build和push。
1 | <executions> |
使用插件构建镜像
1 | mvn install dockerfile:build |
使用插件推送镜像
在使用dockerfile-maven-plugin推送前,需要先编辑一下~/.docker/config.json
,添加用户名及密码,否则会报认证失败。
1 | { |
然后直接运行即可:
1 | mvn dockerfile:push |
运行镜像
最后,可以使用docker run
命令可以将镜像启动,在浏览器中查看一下运行情况
1 | docker run -p 8080:8080 -t yourname/playground |
使用docker logs
简单查看日志
1 | docker ps |