blob: 83d737d815a7e2e86f489efcd4274952e8fae16d [file] [log] [blame] [view]
Michael Neale3e124ed2014-07-18 15:12:27 +10001# Official Jenkins Docker image
Michael Neale2dedbdb2014-07-09 16:58:10 +10002
Michael Neale3e124ed2014-07-18 15:12:27 +10003The Jenkins Continuous Integration and Delivery server.
Michael Neale711e12e2014-07-16 11:02:46 +10004
Michael Neale3e124ed2014-07-18 15:12:27 +10005This is a fully functional Jenkins server, based on the Long Term Support release
6http://jenkins-ci.org/
Michael Neale711e12e2014-07-16 11:02:46 +10007
Michael Neale71eb3ab2014-07-09 18:04:01 +10008
Michael Neale3e124ed2014-07-18 15:12:27 +10009
10# Usage
Michael Neale71eb3ab2014-07-09 18:04:01 +100011
12```
Michael Neale709841c2014-07-14 12:16:58 +100013docker run -p 8080:8080 jenkins
Michael Neale71eb3ab2014-07-09 18:04:01 +100014```
15
Michael Neale711e12e2014-07-16 11:02:46 +100016This will store the workspace in /var/jenkins_home. All Jenkins data lives in there - including plugins and configuration. You will probably want to make that a persistent volume:
Michael Neale71eb3ab2014-07-09 18:04:01 +100017
18```
Michael Neale709841c2014-07-14 12:16:58 +100019docker run --name myjenkins -p 8080:8080 -v /var/jenkins_home jenkins
Michael Neale71eb3ab2014-07-09 18:04:01 +100020```
21
Michael Neale709841c2014-07-14 12:16:58 +100022The volume for the "myjenkins" named container will then be persistent.
23
24You can also bind mount in a volume from the host:
25
Michael Neale709841c2014-07-14 12:16:58 +100026First, ensure that /your/home is accessible by the jenkins user in container (jenkins user - uid 102 normally - or use -u root), then:
Michael Neale71eb3ab2014-07-09 18:04:01 +100027
28```
Michael Neale709841c2014-07-14 12:16:58 +100029docker run -p 8080:8080 -v /your/home:/var/jenkins_home jenkins
Michael Neale71eb3ab2014-07-09 18:04:01 +100030```
31
Michael Neale3e124ed2014-07-18 15:12:27 +100032## Backing up data
33
34If you bind mount in a volume - you can simply back up that directory (which is jenkins_home) at any time.
35
36If your volume is inside a container - you can use ```docker cp $ID:/var/jenkins_home``` command to extract the data.
37
38# Attaching build executors
39
40You can run builds on the master (out of the box) buf if you want to attach build slave servers: make sure you map the port: ```-p 50000:50000``` - which will be used when you connect a slave agent.
41
42
43# Upgrading
44
45All the data needed is in the /var/jenkins_home directory - so depending on how you manage that - depends on how you upgrade. Generally - you can copy it out - and then "docker pull" the image again - and you will have the latest LTS - you can then start up with -v pointing to that data (/var/jenkins_home) and everything will be as you left it.
46
Michael Neale709841c2014-07-14 12:16:58 +100047
48