Running Jenkins as a Docker Container

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

Internal

Overview

Image with Pre-Installed Recommended Plugins

The following Dockerfile builds an image that contains all recommended plugins, and Jenkins Docker Plugin. The image was configured so plugins and the WAR content will be part of the image, while $JENKINS_HOME is written on an external volume on the host system:

https://github.com/NovaOrdis/playground/blob/master/jenkins/docker/jenkins-with-plugins/Dockerfile

Build it with:

docker build -t jenkins-with-plugins .

Help

docker run --rm jenkins-with-plugins --help

Networking

If planning to execute Jenkins with a Docker plugin, create a dedicated user-defined bridge network named "jenkins-cloud" and start the Jenkins container so it will connect to that network. This is to take advantage of automatic DNS resolution between containers when Docker Jenkins agents call into the master:

docker network create --driver=bridge jenkins-cloud

Details on how to configure Docker-based agents are found here: Jenkins Server Configuration for Docker Plugin.

Run

The following command line assumes that the image was modified to maintain the plugin and WAR directories in custom locations:

https://github.com/NovaOrdis/playground/blob/master/jenkins/docker/jenkins-with-plugins/run

The instance will be available at http://localhost:8080/