Build Jenkins With Docker

Introduction

Jenkins adalah Tools otomasi open-source yang membantu mengotomatisasi berbagai tahap dalam proses pengembangan aplikasi, seperti build, test, dan deployment. Dengan Jenkins, tim pengembang dapat mengatur Continuous Integration (CI) dan Continuous Delivery (CD), memastikan kode yang ditulis dapat diuji dan di-deploy secara otomatis dan konsisten. Alat ini mendukung berbagai plugin, memudahkan integrasi dengan banyak tools dan platform yang digunakan dalam pengembangan modern. Cocok untuk tim yang ingin meningkatkan efisiensi dan kualitas dalam pengembangan aplikasi.

Tools

  • Docker-compose / Portainer
  • Instance for installation Jenkins

Berikut adalah beberapa tahap untuk membuat jenkins di self-hosted:

1. Create Jenkins Ocean-blue

Create Dockerfile

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

docker build -t myjenkins-blueocean:2.452.3-1 .

2. Create Docker-compose

Create Docker-compose , disini nanti ada 2 stage atau service yaitu si jenkins dan docker dind (dimana berfungsi sebagai agent nantinya ketika CICD nya berjalan).

version: '3.8'

services:
  jenkins-docker:
    image: docker:dind
    container_name: jenkins-docker
    privileged: true
    restart: on-failure
    networks:
      - jenkins
    environment:
      DOCKER_TLS_CERTDIR: /certs
    volumes:
      - jenkins-docker-certs:/certs/client
      - jenkins-data:/var/jenkins_home
    ports:
      - 2376:2376
    command: --storage-driver overlay2

  jenkins-blueocean:
    image: myjenkins-blueocean:2.452.3-1
    container_name: jenkins-blueocean
    restart: on-failure
    networks:
      - jenkins
    environment:
      DOCKER_HOST: tcp://docker:2376
      DOCKER_CERT_PATH: /certs/client
      DOCKER_TLS_VERIFY: 1
    volumes:
      - jenkins-data:/var/jenkins_home
      - jenkins-docker-certs:/certs/client:ro
    ports:
      - 5000:8080
      - 50000:50000

networks:
  jenkins:
    driver: bridge

volumes:
  jenkins-data:
  jenkins-docker-certs:

3. Check Container

Setelah compose sudah dijalankan, maka nanti akan ada 2 container yang jalan kemudian periksa url / localhost kalian, dan disesuaikan untuk nama hostnya

Untuk portnya default dari Jenkins adalah 8080 , tapi disini saya menggantinya menjadi 5000, jadi aksesnya http://localhost:5000

Cara untuk buka password jenkins : https://www.jenkins.io/doc/book/installing/docker/

Leave a Reply

Your email address will not be published. Required fields are marked *