This plugin allows managing multiple Docker containers from a maven build process.
###Prerequisites
Locally running docker with TCP sockets enabled:
On RHEL thats in /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/docker -d -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock
###Usage The start goal will create a container instance from an image and start it. If the image is not available locally, the plugin will pull the image from the internet.
The stop goal will stop the container instances and remove them from the local registry. The image will remain on the local repository.
If containers are not stopped explicitly using stop goal, the plugin by default will try to stop and delete all containers started from start goal. If you want to keep containers running after maven build has finished, use skipStop option to prevent stopping the containers.
containerConfig option allows configuring container creation parameters. hostConfig option allows configuring container start parameters.
###Examples Here is the simplest example to start a container from publicly available "busybox" image and stop it at the end of the build:
<plugin>
<groupId>com.ofbizian</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<images>
<image>
<name>busybox</name>
</image>
</images>
</configuration>
<executions>
<execution>
<id>start-docker</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
</executions>
</plugin>
Next is a complete example with all the possible configurations:
<plugin>
<groupId>com.ofbizian</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<dockerUrl>http://localhost:4243</dockerUrl>
<images>
<image>
<name>dockerfile/redis</name>
<containerConfig>
<![CDATA[
{"Hostname":"",
"PortSpecs":null,
"User":"",
"Tty":false,
"OpenStdin":false,
"StdinOnce":false,
"Memory":0,
"MemorySwap":0,
"CpuShares":0,
"AttachStdin":false,
"AttachStdout":false,
"AttachStderr":false,
"Env":null,
"Cmd":null,
"Dns":null,
"Volumes":null,
"VolumesFrom":"",
"Entrypoint":[
],
"NetworkDisabled":false,
"Privileged":false,
"WorkingDir":"",
"Domainname":"",
"ExposedPorts":null,
"OnBuild":null}
]]>
</containerConfig>
<hostConfig>
<![CDATA[
{"ContainerIDFile": null, "LxcConf": null, "Links": null, "PortBindings": {
"6379/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "6379"
}
]
}, "Privileged": false, "PublishAllPorts": false}
]]>
</hostConfig>
</image>
<image>
<name>busybox</name>
</image>
</images>
</configuration>
<executions>
<execution>
<id>start-docker</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>stop-docker</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。