Skip to content

Instantly share code, notes, and snippets.

@pythoninthegrass
Forked from SWBSanjeewa/jenkins-docker-compose
Last active February 11, 2024 08:18
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save pythoninthegrass/abb755a54ba908374e1c8bfd79d0c499 to your computer and use it in GitHub Desktop.
Save pythoninthegrass/abb755a54ba908374e1c8bfd79d0c499 to your computer and use it in GitHub Desktop.
Run jenkins master and slave using docker compose
# MASTER PRE-REQS
# Install docker, docker-compose
# mkdir -p ~/{jenkins,jnlp_slave}
# master
# docker run -d \
# -u root \
# --name=jenkins \
# -e TZ=America/Denver \
# -v /var/run/docker.sock:/var/run/docker.sock \
# -v $(which docker):/usr/bin/docker \
# -v $HOME/jenkins:/var/jenkins_home \
# -p 127.0.0.1:2345:2345 \
# -p 8080:8080 \
# -p 50000:50000 \
# jenkins/jenkins:lts
# master docker compose
# cd ~/jenkins
# docker-compose -f jenkins-master-docker-compose.yml up -d
jenkins_master:
image: jenkins/jenkins:lts
container_name: jenkins
user: root
environment:
- TZ=America/Denver
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- $HOME/jenkins:/var/jenkins_home
ports:
- 127.0.0.1:2345:2345
- 8080:8080
- 50000:50000
# JENKINS MASTER CONFIG
# TODO: document
# SLAVE PRE-REQS
# jenkins > manage jenkins > manage nodes > new node
# node name > permanent agent / copy existing node
# executors: 1
# remote root: /var/jenkins_home
# defaults for rest
# select node from nodes list to get java launch opts w/secret hash
# slave
# docker run jenkins/jnlp-slave -url http://192.168.8.113:8080 <secret> <jenkins_slave>
# slave docker compose
# cd ~/jnlp_slave
# docker-compose -f jenkins-slave-docker-compose.yml up -d
jenkins_slave:
image: jenkins/jnlp-slave
container_name: jnlp_slave
user: root
command: -url http://192.168.8.113:8080 <secret> <jenkins_slave>
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- $HOME/jnlp_slave:/var/jenkins_home
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment