<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Prateek Tomar </title>
    <description>The latest articles on DEV Community by Prateek Tomar  (@prateektom).</description>
    <link>https://dev.to/prateektom</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1256735%2Fde95128b-f765-4ec5-a352-8dbcbabec527.png</url>
      <title>DEV Community: Prateek Tomar </title>
      <link>https://dev.to/prateektom</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prateektom"/>
    <language>en</language>
    <item>
      <title>Jenkins on docker</title>
      <dc:creator>Prateek Tomar </dc:creator>
      <pubDate>Mon, 01 Jul 2024 05:32:05 +0000</pubDate>
      <link>https://dev.to/prateektom/jenkins-on-docker-23n8</link>
      <guid>https://dev.to/prateektom/jenkins-on-docker-23n8</guid>
      <description>&lt;p&gt;Welcome to the comprehensive guide on installing Jenkins on Docker. Jenkins is a open source automation server that helps in building, deploying, and automating projects.&lt;br&gt;
Docker simplifies the process by providing a consistent environment across multiple systems. Let's deep dive into the process of setting up Jenkins on Docker.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt; &lt;br&gt;
 Before we begin, make sure you should have the following installations.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Docker Installed:&lt;/strong&gt; Ensure docker is installed by typing this code on your shell.
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker --version 
Docker version 25.0.4, build 1a576c5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;2.&lt;strong&gt;Basic Command Line Knowledge:&lt;/strong&gt;  Familiarity with command-line operations will be beneficial.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Pulling the Docker Dind Image&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull docker:dind
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2: Create a Jenkins bridge Network&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker network create -d bridge jenkins
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3: Run the docker dind image&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run \
  --name jenkins-docker \
  --rm \
  --detach \
  --privileged \
  --network jenkins \
  --network-alias docker \
  --env DOCKER_TLS_CERTDIR=/certs \
  --volume jenkins-docker-certs:/certs/client \
  --volume jenkins-data:/var/jenkins_home \
  --publish 2376:2376 \
  docker:dind \
  --storage-driver overlay2

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 4: Now you need to Customize the official Jenkins Docker image, by executing the following two steps:&lt;/strong&gt;&lt;br&gt;
a. Create a Dockerfile with the following content:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;FROM jenkins/jenkins:2.452.2-jdk17&lt;br&gt;
USER root&lt;br&gt;
RUN apt-get update &amp;amp;&amp;amp; apt-get install -y lsb-release&lt;br&gt;
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \&lt;br&gt;
  https://download.docker.com/linux/debian/gpg&lt;br&gt;
RUN echo "deb [arch=$(dpkg --print-architecture) \&lt;br&gt;
  signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \&lt;br&gt;
  https://download.docker.com/linux/debian \&lt;br&gt;
  $(lsb_release -cs) stable" &amp;gt; /etc/apt/sources.list.d/docker.list&lt;br&gt;
RUN apt-get update &amp;amp;&amp;amp; apt-get install -y docker-ce-cli&lt;br&gt;
USER jenkins&lt;br&gt;
RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;b. Build a new docker image from this Dockerfile, and assign the image a meaningful name, such as "myjenkins-blueocean:2.452.2-1":&lt;br&gt;
&lt;code&gt;docker build -t myjenkins-blueocean:2.452.2-1 .&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Run your own myjenkins-blueocean:2.452.2-1 image as a container in Docker using the following docker run command:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run \
  --name jenkins-blueocean \
  --restart=on-failure \
  --detach \
  --network jenkins \
  --env DOCKER_HOST=tcp://docker:2376 \
  --env DOCKER_CERT_PATH=/certs/client \
  --env DOCKER_TLS_VERIFY=1 \
  --publish 8080:8080 \
  --publish 50000:50000 \
  --volume jenkins-data:/var/jenkins_home \
  --volume jenkins-docker-certs:/certs/client:ro \
  myjenkins-blueocean:2.452.2-1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 5: Accessing you jenkins controller.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open a web browser.&lt;/li&gt;
&lt;li&gt;Navigate to &lt;a href="http://localhost:8080"&gt;http://localhost:8080&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>jenkins</category>
      <category>docker</category>
    </item>
  </channel>
</rss>
