How To Dockerize Jenkins

create a sample directory  with mkdir jenkinsci and create a new Dockerfile

cd jenkinsci

touch Dockerfile

 

FROM jenkins:2.0

USER root
RUN apt-get update \
&& apt-get install -y sudo \
&& rm -rf /var/lib/apt/lists/*
RUN echo “jenkins ALL=NOPASSWD: ALL” >> /etc/sudoers

USER jenkins
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt

then create a plugins.txt file for jenkins plugins

scm-api:latest
git-client:latest
git:latest
greenballs:latest

save it then build the jenkins image

sudo docker build -t jenkinsci .

now we must to run container

sudo docker run -d -v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker -p 8080:8080 jenkinsci

by the way we mapped docker socket ,binary  for running docker commands in container

this command will return container job id. Dont clear the console!

when you visit the http://localhost:8080 you will see the jenkins default login screen

 

you can find the administator password with

docker logs <job_id>

———————————————————————————————————————-

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

67120601cc394ff697b8a23e30440288


You can continue the next steps then you will see the Jenkins Home screen, then we must the test docker command with docker-test project

  • Create a Freestyle Project
  • Add shell build step then save it
  • sudo docker run hello-world

  • Run the build and look at the build logs

run the build.

 

Well, you dockerized jenkins 🙂 awesome!  In next chapter we will integrate jenkins volume

 

 

Jenkins Giriş- 01

jenkins

Jenkins, Open Source bir Continuous Integration (CI) Tool udur.Bir çok geliştirme ortamını destekler.Deployment sürecini ve daha fazlasını otomize etmek için geliştirilmiştir.Yani sunucu tarafında yazılım geliştiricinin yükünü hatrı sayılır derecede hafifletmek amacı ile tasarlanmıştır. Jenkins te build , test, deployment gibi bir çok job çalıştırabilirsiniz.Jenkins pluginler vasıtasıyla genişletilebiliniyor.Örneğin; BitBucket kullanıyorsunuz bunun bir plugin i var, yada .NET projesi yazıyorsunuz MSBuild plugin i var. Üstelik versiyon kontrol entegresi ile development ve deployment süreçleri gayet temiz ve sağlıklı ilerliyor.Aynı zamanda deploymentlarda oluşan artifacts lernizi yine history bazlı store edebiliyorsunuz.Bunun akabinde kendi build scriptleriniz (Phyton,PowerShell,Bash) ile deployment sürecini yönetebiliyorsunuz.

Birçok CI tool u var bunlardan TeamCity,Appveyor,Travis vs.

Neden Jenkins ?

Çünkü open source ve herhangi bir ücrete gerek yok.Pluginleri sayesinde genişletilebilir.