Masdika Loading..
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portofolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • Cara Deploy WordPress di Kubernetes Lengkap dengan SSL Let’s Encrypt
  • Panduan Lengkap Install MetalLB di Kubernetes (VPS/Bare Metal) dengan IP Publik
  • Panduan Lengkap Deploy Ingress NGINX dan Cert-Manager Kubernetes dengan HTTPS Otomatis (Let’s Encrypt)
  • Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  • Monitoring Docker Container dengan CAdvisor, Node Exporter, Prometheus, dan Grafana

Recent Comments

  1. Masdika.BIZ.ID on Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  2. wwqqs on Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  3. Rio Ardiansyah on Panduan Lengkap Redis Docker untuk WordPress
  4. Masdika.BIZ.ID on Cara Monitoring Status Disk RAID di Server Dell Menggunakan Bash Script dan PercCLI
  5. fafiki on Cara Monitoring Status Disk RAID di Server Dell Menggunakan Bash Script dan PercCLI

Archives

  • July 2025
  • June 2025

Categories

  • Tutorial

Masddika.BIZ.ID

  • About
  • Terms & Conditions
  • Privacy Policy
Blog Post

Tutorial Lengkap Install Jenkins di Docker dengan YAML Docker Compose

June 13, 2025 Tutorial by Masdika.BIZ.ID
Tutorial Lengkap Install Jenkins di Docker dengan YAML Docker Compose

Jenkins adalah automation server populer yang banyak digunakan untuk CI/CD pipeline. Dalam artikel ini, kamu akan belajar cara instalasi Jenkins menggunakan Docker dan file YAML docker-compose.yml. Tutorial ini cocok untuk pemula maupun DevOps Engineer yang ingin setup Jenkins dengan cepat dan terstruktur.

๐Ÿงฐ Persyaratan

Sebelum memulai, pastikan kamu sudah:

โœ… Menginstall Docker & Docker Compose di sistem operasi kamu (Windows, Linux, atau macOS)

โœ… Memiliki akses terminal/command prompt dengan hak admin

๐Ÿ“ Struktur Direktori

Buat folder project untuk Jenkins:

mkdir jenkins-docker && cd jenkins-docker

Buat 2 file berikut:

  • docker-compose.yml
  • Dockerfile

๐Ÿ“ File Dockerfile

File ini akan meng-custom image Jenkins agar bisa menjalankan Docker dari dalam container (Docker-in-Docker).

FROM jenkins/jenkins:2.504.2-jdk21

USER root

RUN apt-get update && apt-get install -y \
    lsb-release \
    curl \
    gnupg

RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

RUN echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
  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"

๐Ÿงพ File docker-compose.yml

Berikut file YAML untuk menjalankan Jenkins dan Docker DinD (Docker-in-Docker):

services:
  jenkins-docker:
    image: docker:dind
    privileged: true
    container_name: jenkins-docker
    environment:
      - DOCKER_TLS_CERTDIR=/certs
    networks:
      - jenkins
    volumes:
      - jenkins-docker-certs:/certs/client
      - jenkins-data:/var/jenkins_home
    ports:
      - "2376:2376"

  jenkins-blueocean:
    build: .
    container_name: jenkins-blueocean
    restart: on-failure
    environment:
      - DOCKER_HOST=tcp://jenkins-docker:2376
      - DOCKER_CERT_PATH=/certs/client
      - DOCKER_TLS_VERIFY=1
    networks:
      - jenkins
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - jenkins-data:/var/jenkins_home
      - jenkins-docker-certs:/certs/client:ro

networks:
  jenkins:

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

โ–ถ๏ธ Menjalankan Jenkins

Setelah kedua file di atas dibuat, jalankan perintah berikut:

docker compose up -d --build

Cek log awal Jenkins untuk mendapatkan password admin:

docker logs jenkins-blueocean

Cari bagian seperti ini:

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

abc123def456gh...
*************************************************************

๐ŸŒ Akses Jenkins

Buka browser dan akses:

http://localhost:8080

Masukkan initial admin password dan lanjutkan proses setup wizard:

  1. ๐Ÿ”“ Unlock Jenkins dengan password dari log
  2. ๐Ÿ”Œ Install Suggested Plugins atau pilih sendiri
  3. ๐Ÿ‘ค Buat Admin User
  4. โœ… Selesai! Klik Start using Jenkins

๐Ÿ“ฆ Tambahan untuk Pengguna Windows (Docker Manual Tanpa Compose)

Jika kamu pengguna Windows, pastikan Docker Desktop kamu berada di mode Linux container. Kemudian jalankan langkah-langkah berikut:

๐Ÿ”ง Buat Network Docker

docker network create jenkins

๐Ÿณ Jalankan Docker DinD

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

๐Ÿงฑ Build Custom Jenkins Image

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

๐Ÿš€ Jalankan Jenkins dari Image Tersebut

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 ^
  --volume jenkins-data:/var/jenkins_home ^
  --volume jenkins-docker-certs:/certs/client:ro ^
  --publish 8080:8080 --publish 50000:50000 myjenkins-blueocean:2.504.2-1

๐Ÿ”‘ Dapatkan Password Awal

docker exec jenkins-blueocean cat /var/jenkins_home/secrets/initialAdminPassword

๐Ÿงน Stop & Hapus

Untuk menghentikan Jenkins:

docker compose down

Untuk menghapus data:

docker volume rm jenkins-data jenkins-docker-certs

โœ… Kesimpulan

Dengan docker-compose.yml, proses setup Jenkins menjadi lebih rapi, terautomasi, dan portable. Cocok untuk development environment maupun CI/CD pipeline kecil. Pengguna Windows pun bisa mengikuti metode ini dengan penyesuaian Docker Linux Container.

Semoga bermanfaat! ๐Ÿš€โœจ

Share:
Tags: dockerjenkins

Post navigation

Prev
Next
Write a comment Cancel Reply

ยฉ 2025 www.masdika.biz.id โ€” Semua Hak Dilindungi