Skip to content

webmakaka/Learn-DevOps-CI-CD-with-Jenkins-using-Pipelines-and-Docker

 
 

Repository files navigation

Learn DevOps: CI/CD with Jenkins using Pipelines and Docker

Docker should be installed

$ cd ~
$ git clone https://github.com/marley-nodejs/Learn-DevOps-CI-CD-with-Jenkins-using-Pipelines-and-Docker

$ cd Learn-DevOps-CI-CD-with-Jenkins-using-Pipelines-and-Docker/

$ docker build -t jenkins-docker -f jenkins-docker.dokerfile .

$ sudo su -

#  chmod -R 777 /var/jenkins_home/
#  chmod 777 /var/run/docker.sock

# docker run -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock --name jenkins -d jenkins-docker

http://<host>:8080

Manage Plugins:

- CloudBees Docker Build and Publish

Freestyle project

Jenkins

Jenkins


6. Jenkins Pipelines

4. Demo Jenkins pipelines with NodeJS and Docker

Manage Plugins:

- NodeJS
- Job DSL

New Item --> name: "nodejs docker pipeline" --> PipeLine

Jenkins

Jenkins

Jenkins


Inside file misc/Jenkinsfile replace 'dockerhub_credentials' on 'your_credential_id_for_dockerhub_in_jenkins'.

And marley/docker-nodejs-demo on your.

Commit and push code.


   stage('docker build/push') {
     docker.withRegistry('https://index.docker.io/v1/', 'dockerhub') {
       def app = docker.build("marley/docker-nodejs-demo:${commit_id}", '.').push()
     }
   }

Jenkins

Jenkins

Jenkins


6. Demo Build, test, and run everything in Docker containers

misc/Jenkinsfile.v2

Jenkins

Jenkins


7. Jenkins Integrations


1. Email integration

Plugins:

- Email Extension Plugin

https://mailtrap.io/

Jenkins --> Configure --> Extended E-mail Notification

SMTP server: smpt.mailtrap.io

Use SMTP Authentication

Pipeline:

https://github.com/wardviaene/jenkins-course/blob/master/email-notifications/Jenkinsfile


12. Sonarqube integration (java)

Plugins:

- Sonarqube Scanner for Jenkins

Docker-compose file:

$ mkdir ~/vagrant-jenkins-sonarqube && cd vagrant-jenkins-sonarqube
$ wget https://raw.githubusercontent.com/wardviaene/jenkins-course/master/docker-compose/docker-compose.yml

$ docker-compose up
$ docker-compose log -f sonarqube

http://<host>:9000
admin/admin

Sonarqube --> Admin --> Security

Generate Tokens

jenkins --> generate

Jenkins --> Global Tool Configuration

Sonarqube Scanner: --> Name --> sonar
Install automaticaly

Credential --> Secret text

Scope: global
Secret: sonarqube token
ID: sonar
Description: sonar

New Pipeline Project

Pipeline:

https://github.com/wardviaene/jenkins-course/blob/master/sonarqube/Jenkinsfile


Marley

jsdev.org

About

Learn DevOps: CI/CD with Jenkins using Pipelines and Docker

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 95.2%
  • Dockerfile 4.8%