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
4. Demo Jenkins pipelines with NodeJS and Docker
Manage Plugins:
- NodeJS
- Job DSL
New Item --> name: "nodejs docker pipeline" --> PipeLine
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()
}
}
6. Demo Build, test, and run everything in Docker containers
misc/Jenkinsfile.v2
1. Email integration
Plugins:
- Email Extension Plugin
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