Using fabric8 docker-maven-plugin to automate docker builds

In building the required libraries for a docker container, using a maven project, the libraries have to be copied to a separate location and we have to manually run a docker build. This process is cumbersome since you have to repeat the same process over even if there is a slight modification.

fabric8 docker-maven-plugin is the perfect solution for this requirement. spotify also supports a docker plugin. However fabric8 provides much more functionalities. For example, with fabric8 it’s possible to inject values to the docker file with ease.

fabric8 provides a great source of documentation ( However for a beginner, it could be challenging. My requirement was to configure the plugin in
such a way that would enable even a user without docker on his/her machine to do a maven build.

Configuring fabric8 docker-maven-plugin

The first step was to move the variable names to the POM so that configurations can be separated in order to improve maintainability.


Next under the <build><plugins> tag add the maven docker plugin.

             <!-- "build" should be used to create the images with the artifact -->

Next, I needed to skip the execution of the plugin if the user does not want to build the docker image. Therefore I created a profile, that would set the variable ${docker.skip} to true on the provision of the variable skipDocker.

I added the following section to the pom.


Based on the above code snippet, if skipDocker has been given as a maven directive, it would set docker.skip to true, effectively skipping the execution of the plugin.

Therefore a user can skip building the docker image simply by,

maven clean install -DskipDocker

Fabric8 has a lot of support for docker builds. I have a lot to explore. Hope you’ve found my findings useful. Don’t forget to leave a comment. 🙂

Notify of
Inline Feedbacks
View all comments