Day 76: Integrating Docker with Jenkins

Today, I focused on integrating Docker into Jenkins pipelines and learned how to seamlessly work with Docker Hub, AWS ECR, and ECS. This integration is crucial for automating the build, packaging, and deployment process in a CI/CD pipeline.


🔹 Why Docker with Jenkins?

Jenkins automates CI/CD, and Docker ensures consistent environments. Together, they:

  • Build app images automatically.

  • Push images to registries (Docker Hub / AWS ECR).

  • Deploy seamlessly to AWS ECS.


🔹 Jenkins Pipeline Snippet

Here’s the pipeline I worked on today:

  • Building image using docker:
stage('Build App Image') {
  steps {
    script {
      dockerImage = docker.build(appRegistry + ":$BUILD_NUMBER", "./Docker-files/app/multistage/")
    }
  }
}
  • Uploading Image to AWS ECR and ECS:

      stage('Upload App Image') {
        steps {
          script {
            docker.withRegistry(vprofileRegistry, registryCredential) {
              dockerImage.push("$BUILD_NUMBER")
              dockerImage.push('latest')
            }
          }
        }
    

Breakdown

  1. Build App Image

    • Uses docker.build() to create the application image from a multi-stage Dockerfile.

    • Tags image with BUILD_NUMBER for versioning.

  2. Upload App Image

    • Pushes the image to Docker Hub or AWS ECR.

    • Maintains two tags: latest & BUILD_NUMBER.


🔹 Key Learnings

✅ Multi-stage Dockerfiles keep images lightweight & optimized.
✅ Jenkins + Docker ensures consistent builds.
✅ AWS ECR + ECS enable scalable deployments.

0
Subscribe to my newsletter

Read articles from Shaharyar Shakir directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Shaharyar Shakir
Shaharyar Shakir