2015-02-17 04:30:06 +00:00
|
|
|
A self-upgrading [Jenkins CI](http://jenkins-ci.org/) server
|
|
|
|
|
|
|
|
# Basic Usage
|
|
|
|
|
|
|
|
To start Jenkins with the latest version:
|
|
|
|
|
|
|
|
ID=$(docker run -d -p 8080:8080 itzg/jenkins)
|
|
|
|
|
|
|
|
At a later time, you can upgrade by restarting the container:
|
|
|
|
|
|
|
|
docker stop $ID
|
|
|
|
docker start $ID
|
|
|
|
|
|
|
|
# Attaching host directory to Jenkins home directory
|
|
|
|
|
|
|
|
The Jenkins home directory is attachable at `/data`, so attaching to a host volume
|
|
|
|
would be:
|
|
|
|
|
|
|
|
ID=$(docker run -d -p 8080:8080 -v /SOME_HOST_DIR:/data itzg/jenkins
|
|
|
|
|
|
|
|
# Entering the container to perform manual config
|
|
|
|
|
|
|
|
As with any Docker container, you can run a shell within the running container:
|
|
|
|
|
|
|
|
docker exec -it $ID bash
|
2015-02-18 01:11:53 +00:00
|
|
|
|
|
|
|
A more realistic example is installing git, openjdk-7-jdk, etc:
|
|
|
|
|
|
|
|
docker exec $ID apt-get update
|
|
|
|
docker exec $ID apt-get install -y git openjdk-7-jdk
|
|
|
|
|
|
|
|
and then Configure the JDK in Jenkins:
|
|
|
|
|
|
|
|
![](http://i.imgur.com/HVetwKc.png)
|
2015-02-18 01:35:39 +00:00
|
|
|
|
|
|
|
# Enabling Jenkins slave agents
|
|
|
|
|
|
|
|
By default, Jenkins will pick a random port to allow slave nodes launched
|
|
|
|
by JNLP. Since Docker networking is basically a firewall, a random port
|
|
|
|
won't work for us. Instead the fixed port **38252** was chosen (arbitrarily)
|
|
|
|
to be exposed by the container.
|
|
|
|
|
|
|
|
Launch your Jenkins container using
|
|
|
|
|
|
|
|
ID=$(docker run -d -p 8080:8080 -p 38252:38252 itzg/jenkins)
|
|
|
|
|
|
|
|
and configure the port in the Global Security settings:
|
|
|
|
|
|
|
|
![](http://i.imgur.com/PhQiEHy.png)
|