Setting up CI pipeline with Jenkins, GitHub & Docker on Ubuntu (Linux) machine
Varun Gujarathi
Posted on February 5, 2021
Table of Contents
Pre-requisites
You should know Docker
, basic CI-CD concept
& basics of what Jenkins
is used for
You should have Linux OS
like Ubuntu, Java
(OpenJDK 11) & Docker
installed
Description
This project was created to install Jenkins on a local machine (Ubuntu 16.04) and create a basic pipeline with GitHub & Docker
We will be doing is
- Installing Jenkins and running it, on a local machine
- Creating a docker image
- Pushing it to docker hub using Jenkins' pipeline
Installing Jenkins
- Add repository keystream
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
You must get a response printed as OK
- Now add the Debian package to your
sources.list
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
- Now, update system
sudo apt update
- Finally, install Jenkins
sudo apt install jenkins
Now, Jenkins is installed in your system and is ready to run.
Start, stop, status of Jenkins service
We would be using standard systemctl
commands
- To start
sudo systemctl start jenkins
- To check status
sudo systemctl status jenkins
- To stop
sudo systemctl stop jenkins
- To start on boot
sudo systemctl enable jenkins
First time login
Go to
<IP_ADDRESS>:8080
Jenkins login page should appear asking you to enter the administrator password
Now open a terminal and type
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
A string printed on the console is the administrator password, enter this is on Jenkins login page
Choose
Install selected plugins
(You may chooseSelect plugins to install
)
Now it will install plugins and show you the details, it takes some timeIt would ask you to create a new 'Admin User'.
Now, Jenkins is configured for the system
Integrating GitHub with Jenkins
Go to
Manage Jenkins
from the menu on the left paneClick on
Manage Plugins
Go to
Advance
tabSearch & install
GitHub Integration
,Pipeline
,Docker
&Docker Pipeline
plugins
a. Click onDownload now and install after restart
b. On the next window select the checkbox forRestart Jenkins when the installation is complete and no jobs are running
at the bottom of the page. Jenkins will restart once the plugin is downloadedNow go to your GitHub repository, go to
Settings
, go toWebhooks
, click onAdd Webhook
For the payload URL, provide your Jenkins URL and the GitHub webhook path at the end of the URL -
https://<JENKINS_URL>/github-webhook/.
Content-type
should be JSONIn
Which events would you like to trigger this webhook?
selectJust the push event.
Now we are ready to integrate any GitHub repository with Jenkins
Creating Pipeline
On the dashboard, click on
Create Job
optionGive a name to your pipeline
Choose
Pipeline
In
Build Triggers
selectGitHub hook trigger for GITScm polling
In the
Pipeline
section choose definition asPipeline script from SCM
In the
SCM (Source Code Management )
tab, selectGit
enter GitHub repository URL, and saveNow copy Jenkinsfile in your repository base path
Add Docker credentials to Jenkins host
a. On the top right of the home page, click on the dropdown next to the username
b. SelectCredentials
c. Go toSystem
OR Click onGlobal
from anyone pre-existing credentials
d. Click onAdd Credentials
e. Keep scopeGlobal
f. Enter Docker Hub username & password and set some ID in ID fieldNow in the
Jenkinsfile
in theenvironment
set the ID
The pipeline is now created, push code to GitHub to see the pipeline run
GitHub Repo:
varungujarathi9 / Jenkins-Hello-World
Installing Jenkins and creating a basic pipeline
Posted on February 5, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
February 5, 2021