原文链接
正常情况下,我们在开发了一个应用程序后,会使用maven进行打包,生成对应的jar文件。而后,会使用docker将jar文件build成一个镜像(docker image)。之后,就可以在docker daemon中创建基于镜像的容器,并可提供服务了,dockerfile-maven-plugin 插件可以在项目构建的时候自动生成镜像,也可以自动将生成的镜像push到指定的镜像库。
下面示例是构建项目生成jar包,并且使用Dockerfile自动生成镜像。
首先,查看Dorkerfile文件,需要注意语句,指令定义了一个变量, 这个变量的值将在dockerfile-maven-plugin 插件的配置中设置。
注解:
- ARG 构建参数的格式是:ARG <参数名>[=<默认值>],Dockerfile 中的 ARG 指令是定义参数名称,以及定义其默认值。该默认值可以在构建命令 docker build 中用 --build-arg <参数名>=<值> 来覆盖。
其次,查看pom文件的dockerfile-maven-plugin 插件配置。buildArgs元素指定了传递给Dockerfile的参数,比如上面中的JAR_FILE
注解:
- 指定了该插件目标使用默认绑定。默认的,build和tag目标绑定到package阶段,push目标绑定到deploy阶段,这里不涉及tag和push目标。
- 是生成的镜像的repository信息
- 元素指定镜像的tag,这里使用Maven模块的版本号;
- buildArgs元素指定了传递给Dockerfile的参数,比如上面Dockerfile中的JAR_FILE.
- 是jar包路径,这里使用了最终生成的jar包的文件名
跳过插件目标:
如果要临时跳过所有的Dockerfile相关的目标,执行如下Maven命令:
如果只是想跳过某一个goal,执行如下Maven命令: