A simple Docker image for running a Jenkins agent alongside its very own Docker daemon. This is useful if you're trying to run Jenkins agents on a Mesos cluster, and you also want to build and push Docker images using your CI system.
For full documentation on how to use this Docker image, please refer to https://docs.mesosphere.com/services/jenkins/custom-docker/.
Try it out locally by running the following command:
docker run --privileged bryanlatten/jenkins-dind:0.7.0-alpine \
wrapper.sh "java -version && docker run hello-world"
- Use
DOCKER_ENGINE_LOGS
to control visibility of Docker's detailed daemon output
You'll need to configure the Mesos plugin on your Jenkins master to use this
image. You'll probably also want to give it a special slave label, so that you
don't unnecessarily run builds using the dind image. A relevant snippet of the
Mesos plugin within the Jenkins master's config.xml
follows:
<org.jenkinsci.plugins.mesos.MesosSlaveInfo>
<slaveCpus>0.1</slaveCpus>
<slaveMem>512</slaveMem>
<executorCpus>0.1</executorCpus>
<maxExecutors>2</maxExecutors>
<executorMem>128</executorMem>
<remoteFSRoot>jenkins</remoteFSRoot>
<idleTerminationMinutes>3</idleTerminationMinutes>
<jvmArgs>
-Xms16m -XX:+UseConcMarkSweepGC -Djava.net.preferIPv4Stack=true
</jvmArgs>
<jnlpArgs/>
<containerInfo>
<type>DOCKER</type>
<dockerImage>mesosphere/jenkins-dind:0.6.0-alpine</dockerImage>
<networking>BRIDGE</networking>
<useCustomDockerCommandShell>true</useCustomDockerCommandShell>
<customDockerCommandShell>wrapper.sh</customDockerCommandShell>
<dockerPrivilegedMode>true</dockerPrivilegedMode>
<dockerForcePullImage>false</dockerForcePullImage>
</containerInfo>
<mode>NORMAL</mode>
<labelString>dind</labelString>
</org.jenkinsci.plugins.mesos.MesosSlaveInfo>