Skip to content

Latest commit

 

History

History
61 lines (50 loc) · 2.32 KB

README.md

File metadata and controls

61 lines (50 loc) · 2.32 KB

Jenkins Docker-in-Docker Agent

Docker Stars Docker Pulls

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/.

Usage

Command line

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

Jenkins

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>