Skip to content

A project for quick build an Jenkins lab environment on local laptop

Notifications You must be signed in to change notification settings

terrych0u/jenkins-dind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jenkins-dind

This project is for quick build an Jenkins lab environment on local laptop, to help learning Jenkins, and it contain 2 parts:

jenkins-dind
jenkins-ssh-slave

How to use

You use make help command to understand how to setup in your local environment laptop quickly.

you can setup standalone mode or master-slave mode by make command.

build-master                   Build the customized docker images for jenkins master
build-slave                    Build the customized docker images for jenkins slave with ssh
build                          Build the customized docker images for jenkins master and slave
clean-all                      Stop the jenkins docker containers and clean all related data, images...etc
clean                          Stop the jenkins docker containers
dir-slave                      Create directory for jenkins-slave containers mount, help to backup file to local.
dir                            Create directory for jenkins-master or single jenkins containers mount, help to backup file to local.
help                           List targets & descriptions
master-slave                   Run master + slave mode for jenkins
run                            Run standalone jenkins
slave                          Run a slave jenkins

jenkins-dind

A Jenkins container can mount docker daemon and run docker inside by sudo

It's has sudo permission, it can use for running docker inside of this Jenkins container by mount docker daemon. Base on official jenkins/jenkins:alpine-lts images

docker run -d -v /var/run/docker.sock:/var/run/docker.sock \
            -v $(which docker):/usr/bin/docker \
            -p 8080:8080 -p 50000:50000 -p 9917:9917 \
            --name jenkins-master --rm terrych0u/jenkins-dind:alpine-lts-2.138.2

jenkins-ssh-slave

This image provide ssh with docker in docker as Jenkins slave.

it's a Docker In Docker version (you can use Docker inside) based on official Docker 18.09 DinD image, and use master connects this slave by ssh tunnel as below :

PUBLIC_KEY=$(cat ~/.ssh/id_rsa.pub)
docker run -d  --rm terrych0u/jenkins-ssh-slave:18.09-rc-dind "${PUBLIC_KEY}"

Notice

PS. This image have sudo privilege, use it carefully. Don't use it on production.

To Do

  1. docker-compose.
  2. an scripts can help setup node into master by api, without any UI control.

Ref

Docker in Docker Running Docker in Jenkins Container

About

A project for quick build an Jenkins lab environment on local laptop

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published