Public | Automated Build

Last pushed: 3 years ago
Short Description
Short description is empty for this repo.
Full Description


Image Base : dfranssen/docker-base

Exposed Ports : 8080 2812 22 36562 33848/udp
Timezone : Europe/Brussels

Jenkins version : 1.583
Jenkins Home : /var/lib/jenkins

Maven version : 3.2.2
Maven Home : /var/lib/maven/maven-3.2.2

Environment Variables

    Arguments to pass to maven. Default : '-Xms256m -Xmx512m'

    Arguments to pass to Java when Jenkins starts. Default : '-Djava.awt.headless=true'
    Ulimit maxopenfiles for Jenkins. Default '8192'
    URL prefix. Default '/jenkins'
    Start up arguments for Jenkins. Default '--webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1 --prefix=$JENKINS_PREFIX'
    JNLP port for Jenkins Slave communication. Default : 36562
    Container Timezone. Default 'Europe/Brussels'



When running the image, you can pass in environment variables that will affect the behaviour of Jenkins.
An example, you change the Timezone by runnning:

docker run --env TZ=<TIMEZONE> -d dfranssen/docker-jenkins-master

Or change Java heap size:

docker run --env JENKINS_JAVA_ARGS=-Xmx4g -d dfranssen/docker-jenkins-master

If you want to preserve the volume after the container has been removed (e.g update of the image) or want to
facilitate the backup/restore of the jenkins home folder, it is best to add the option --volumes-from myjenkins-data
in the run instruction of above.
The data container could be started by running:

docker run -d --name myjenkins-data -v /var/lib/jenkins busybox:ubuntu-14.04 true

Monit is used to control the start up and management of Jenkins (and SSHD). You can access the monit webserver
by exposing port 2812 on the Docker host. The user name is monit and password can be found by running:

docker logs <CONTAINER_ID> 2>/dev/null | grep MONIT_PASSWORD

OpenSSH is also running, you can ssh to the container by exposing port 22 on your Docker host and using the username
jenkins. Password can be found by running:

docker logs <CONTAINER_ID> 2>/dev/null | grep JENKINS_PASSWORD

An id_rsa key pair is also generated and the contents of the public key can be found by:

docker logs <CONTAINER_ID> 2>/dev/null | grep ID_RSA_PUB has been added to the ssh known_hosts.

Furthermore, this Jenkins container is also capable of managing Docker containers on the host when the socket is bind-mount-in.
Currently no need to run with the --privileged flag as no seperate Docker daemon is needed inside this jenkins container, but this is possible though :-)
In order to know the host ip address make an alias as indicated in the following statements and pass it as an environment variable:

alias hostip="ip route show | grep -Eo 'via \S+' | awk '{ print \$2 }'"
docker run -v /var/run/docker.sock:/var/run/docker.sock -e DOCKER_HOST==$(hostip) <CONTAINER_ID>

This DOCKER_HOST would allow Jenkins to execute system tests against the new container he created with the application code. This container is bound to the DOCKER_HOST as the socket was bind in.

If no DOCKER_HOST environment variable is set, the --privileged flag should be used and a Docker daemon will be enabled in this container.


The following list of plugins come included in the container (some dependencies are listed explicitly in order to have the latest version):


It is possible to customise the plugins that get added to the image by updating:


You don't need to worry about plugin dependencies, they are resolved when you build the image.

Kudos to [yasn77] ( for the inspiration.

Docker Pull Command
Source Repository