How to Install Jenkins and Implement Build Agents with Docker on Ubuntu 22.04 LTS

Setting up Jenkins with Docker-based build agents provides an efficient way to automate software development tasks and enhances the CI/CD pipeline by offering scalable, isolated environments for builds and deployments. This guide will help you navigate the installation and configuration on Ubuntu 22.04 LTS.


Prerequisites

Ensure you have:

  • Administrative access to your Ubuntu server.
  • Docker and Git installed or ready to install.
  • Basic knowledge of Jenkins, Docker, and CI/CD processes.

Technical Implementation

Step 1: Install Jenkins

  1. Update the package list:
   sudo apt update && sudo apt install apt-transport-https -y
  1. Add the Jenkins repository:
   wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
   sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
  1. Install Jenkins:
   sudo apt update && sudo apt install jenkins -y
  1. Start and enable the Jenkins service:
   sudo systemctl start jenkins
   sudo systemctl enable jenkins

Access Jenkins by navigating to http://<your-server-ip>:8080 and follow the setup instructions.

Step 2: Install Docker

  1. Install Docker:
   sudo apt install docker.io -y
  1. Start and enable Docker:
   sudo systemctl start docker
   sudo systemctl enable docker

Verify the installation with:

   docker --version

Step 3: Configure Jenkins for Docker Build Agents

  1. Install the Docker Pipeline plugin:
  • Navigate to Jenkins dashboard > Manage Jenkins > Manage Plugins.
  • Search for “Docker Pipeline” and install it.
  1. Create a Jenkinsfile:
    Create a Jenkinsfile in the root of your project directory:
   pipeline {
       agent any
       stages {
           stage('Build') {
               steps {
                   sh 'docker build -t my-app .'
               }
           }
           stage('Deploy') {
               steps {
                   sh 'docker run -d -p 8080:8080 my-app'
               }
           }
       }
   }

Step 4: Create and Configure a Dockerfile

Create a Dockerfile in your project directory:

FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]

Step 5: Build and Push Docker Image

  1. Build the Docker image:
   docker build -t my-app .
  1. Push the image to Docker Hub:
    Tag the image:
   docker tag my-app:latest <your-username>/my-app:latest

Push the image:

   docker push <your-username>/my-app:latest

Best Practices

  • Secure Jenkins:
  • Configure Jenkins with two-factor authentication.
  • Use credential encryption for sensitive data.
  • Monitor and log builds:
  • Set up monitoring tools to ensure the continuous health of your Jenkins instance.
  • Leverage Docker Hub:
  • Store your images in a private or public registry.

Troubleshooting Tips

  • Jenkins not starting:
  • Check Jenkins logs at /var/log/jenkins/jenkins.log for error messages.
  • Docker build failures:
  • Verify the Dockerfile syntax and ensure all dependencies are installed.

For additional resources:


Conclusion

By following this guide, you now have Jenkins set up on Ubuntu 22.04 LTS with Docker build agents, enabling you to automate your CI/CD pipeline. This configuration ensures efficient, consistent builds and deployments. Keep your Jenkins and Docker environments secure and updated, and continue exploring ways to optimize your automation pipeline.

Next Steps:

  • Integrate Jenkins with your existing CI/CD pipeline for full automation.
  • Scale Jenkins by adding more build agents to handle increased workload.
  • Explore plugins that enhance Jenkins functionality, such as Blue Ocean for a modern UI and better pipeline visualization.