Skip to content
Wouter Danes edited this page Jul 17, 2014 · 2 revisions

Welcome to the documentation of the docker-maven-plugin.

Usage information

Group Id: net.wouterdanes.docker Artifact Id: docker-maven-plugin

Current release version: 1.2 Current snapshot version: 1.3-SNAPSHOT

Sample plugin declaration:

  <plugin>
    <groupId>net.wouterdanes.docker</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.1</version>
  </plugin>

The releases of this plugin are deployed to maven central, the SNAPSHOT versions are automatically deployed to the Sonatype OSS repository. To be able to use the SNAPSHOT versions of this plugin, add the following repository to your project POM or settings.xml:

  <pluginRepository>
        <id>sonatype-oss-snapshots</id>
        <name>Sonatype OSS Snapshots</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
  </pluginRepository>

Current functionality

  • Start a container in the pre-integration-test phase based on an image: - Known on the docker host by a name - Available in a repository
  • Shut down containers in the post-integration-test phase that were started in the pre-integration-test phase
  • Supply information to the project during the integration-test phase about: - Images that were built - Containers that were started
  • Build a docker image from a bunch of source files in package and pre-integration-test phases - Allow built containers to be started in the pre-integration phase
  • Push that docker image to a public or private image registry in the install phase
  • Docker provider for "local docker" via tcp
  • Docker provider for "remote docker" via tcp (boot2docker/vm/server/localhost via tcp)

Architecture principles

  • The plugin needs to work in CI server environments, so it needs to make sure there are no port collisions and multiple builds can run on the same server in parallel. Also, docker images and containers it creates need to have unique names and/or ids.
  • Multiple "docker providers" need to be supported and pluggable
Clone this wiki locally