💾Thananjhayan
← Back to notes

Task 3 — 3-Stage Jenkins Pipeline (Practical)

July 13, 2025

The paper wants exactly 3 stages. The final Jenkinsfile maps 1:1.

Stage mapping

StageName in JenkinsfileWhat it does
(ii)Pull Git Repositorygit branch:'main', url:'<your fork>'
(iii)Build Docker Imagesdocker build backend2 + frontend2 images
(iv)Push to Docker Hubdocker login then docker push both images

docker login lives inside the Push stage so the count stays at 3.

Steps to demo in the exam

  1. Jenkins → New Item → name → Pipeline → OK.
  2. Pipeline section → Pipeline script from SCM → Git → your forked repo URL → branch main → Script Path Jenkinsfile. Save. (Or paste the Jenkinsfile directly using Pipeline script.)
  3. Add Docker Hub creds (ID dockerhub-creds) under Manage Jenkins → Credentials.
  4. Edit the placeholders: YOUR_DOCKERHUB_USERNAME, YOUR_INDEX_NO, and the fork URL.
  5. Build Now → all 3 stages go green → verify the images on Docker Hub.

Final Jenkinsfile (3 stages)

pipeline {
    agent any
    environment {
        DOCKERHUB_USER  = 'YOUR_DOCKERHUB_USERNAME'
        INDEX_NO        = 'YOUR_INDEX_NO'
        DOCKERHUB_CREDS = credentials('dockerhub-creds')
    }
    stages {
        stage('Pull Git Repository') {
            steps { git branch: 'main', url: 'https://github.com/YOUR_USERNAME/YOUR_FORKED_REPO.git' }
        }
        stage('Build Docker Images') {
            steps {
                sh 'docker build -f backend2/DOCKERFILE  -t $DOCKERHUB_USER/${INDEX_NO}-backend:latest  ./backend2'
                sh 'docker build -f frontend2/DOCKERFILE -t $DOCKERHUB_USER/${INDEX_NO}-frontend:latest ./frontend2'
            }
        }
        stage('Push to Docker Hub') {
            steps {
                sh 'echo $DOCKERHUB_CREDS_PSW | docker login -u $DOCKERHUB_CREDS_USR --password-stdin'
                sh 'docker push $DOCKERHUB_USER/${INDEX_NO}-backend:latest'
                sh 'docker push $DOCKERHUB_USER/${INDEX_NO}-frontend:latest'
            }
        }
    }
    post { always { sh 'docker logout || true' } }
}

End-to-end flow to recite

Install/run Jenkins → install plugins → add Docker Hub credentials → New Item → Pipeline → Pipeline from SCM (your forked repo, Jenkinsfile) → Build Now → Jenkins checks out the code → builds backend & frontend images → docker login → pushes both images to Docker Hub → verify on Docker Hub.

Related: [[jenkins-jenkinsfile-explained]], [[docker-multi-container-app]].

💬 Comments