Skip to main content

Command Palette

Search for a command to run...

Jenkins Declarative Pipeline with Docker

Updated
3 min read
Jenkins Declarative Pipeline with Docker
O

Hi there! I'm Ojas Jawale, a passionate Cloud, DevOps and Cyber Security enthusiast. I love to dive into the latest new technologies and sharing my journey through blog. I'm always eager to learn and grow in this ever-evolving field of DevOps and Cyber Security. You'll find me writing about CI/CD pipelines, automation, containerization with Docker, and other exciting tech topics related to software quality and deployment. My goal is to demystify complex DevOps and Cyber Security concepts, provide practical tips on automation and testing, and inspire others in the developer and operations community. Let's connect, learn, and build amazing, high-quality software together!

Let's integrate Docker and your Jenkins declarative pipeline.

  1. Use your Docker Build and Run

  • docker build - you can use sh 'docker build . -t <tag>' in your pipeline stage block to run the docker build command. (Make sure you have docker installed with correct permissions.

  • docker run: you can use sh 'docker run -d <image>' in your pipeline stage block to build the container.

How will the stage look,

stages {
        stage('Build') {
            steps {
                sh 'docker build -t ojasjawale/django-app:latest'
            }
        }
    }

  1. Task-1

  • Create a docker-integrated Jenkins declarative pipeline

  • Use the above-given syntax using sh inside the stage block

  • You will face errors in case of running a job twice, as the docker container will be already created, so for that do task 2.


  • Create a new pipeline project and named it.

  • Sample script for testing,

  • Now in the "Project Configuration" section, we have to define a pipeline script in the definition.
pipeline{
    agent any

    stages{
        stage("Source Code"){
            steps{
                git url: "https://github.com/ojasjawale/django-notes-app.git", branch: "main"
            }
        }
        stage("Build Code"){
            steps{
                echo "Image build started......"
                sh 'docker build -t notes-app:v1 .'
                echo "Image build Successfully......"
            }
        }
        stage("Testing"){
            steps{
                echo "Testing started......."
                echo "Testing done......."
            }
        }
        stage("Deploy"){
            steps{
                echo "Deployment started......"
                sh 'docker run -d --name notes-app -p 8000:8000 notes-app:v1'
                echo "Deployment successfully completed........"
            }
        }
    }
}
  • Click on Save and Build the application.

  • Our application can be viewed from a browser.

  • You will face errors in case of running a job twice, as the docker container will be already created, so for that do task 2.

  • Run the pipeline again by clicking on the “Build Now” button.


  1. Task-2

  • Create a docker-integrated Jenkins declarative pipeline using the docker groovy syntax inside the stage block.

  • You won't face errors, you can Follow this documentation

  • Complete your previous projects using this Declarative pipeline approach.


To solve this issue we can use a docker image to build the application and for that, we have to install Docker Pipeline & Docker in Jenkins.

  • Now we have to add a docker image in the Build stage.
 pipeline {
    agent any

    stages {
        stage("Source Code") {
            steps {
                git url: "https://github.com/ojasjawale/django-notes-app.git", branch: "main"
            }
        }
        stage("Build Code") {
            steps {
                echo "Image build started......"
                script {
                    docker.build('notes-app:v1')
                }
                echo "Image build Successfully......"
            }
        }
        stage("Testing") {
            steps {
                echo "Testing started......."
                echo "Testing done......."
            }
        }
        stage("Deploy") {
            steps {
                sh 'docker run -d --name notes-app -p 8000:8000 notes-app:v1'
            }
        }
    }
}
  • Click on Save and then click on Build Now.


Connect With Me

Thank you for reading. I hope you were able to understand and learn something new from my blog.

Happy Learning!

LinkedIn | GitHub

More from this blog

Untitled Publication

52 posts