Install Jenkins dan Nginx dengan Docker-compose

Pada postingan Saya kali ini, Saya akan membuat tutorial bagaimana cara install jenkins dan nginx dengan docker-compose. Dari mulai membuat file docker-compose.yml, menginstall menggunakan docker-compose, menkonfigurasi proxy nginx supaya bisa berjalan di port 80 ( karena defaultnya jenkins berjalan di port 8080 dan 8443 ) dan yang terakhir melakukan setup awal pada jenkins. Baiklah, mari kita mulai :

Requirements :

  • Docker
  • Docker Compose
  • Domain Name (optional)

Langkah – langkah install jenkins dan nginx dengan docker-compose :

1. Buat file docker-compose.yml

Pertama – tama, kita buat file docker-compose.yml, di tutorial ini saya meletakannya file tersebut di dalam /home/docker ( folder yang khusus saya buat untuk docker ). Jadi, masuklah ke folder /home/docker, buat file docker-compose.yml

cd /home/docker

vim docker-compose.yml

masukkan konfigurasi dibawah ini lalu simpan :

version: '3'

services:
   nginx:
     container_name: nginx-jenkins 
     image: nginx:1.20-alpine
     volumes:
       - /home/docker/nginx/conf.d:/etc/nginx/conf.d
       - /home/docker/log/nginx:/var/log/nginx
       - /home/docker/log/nginx/jenkins:/var/log/nginx/jenkins
     restart: always
     environment:
       TZ: Asia/Jakarta

   jenkins:
     depends_on:
       - nginx
     container_name: jenkins
     image: jenkins/jenkins:lts-jdk11 
     restart: always
     environment:
       TZ: Asia/Jakarta
     volumes:
       - /home/docker/jenkins_home:/var/jenkins_home

beberapa penjelasan :

image: nginx:1.20-alpine
image: jenkins/jenkins:lts-jdk11
Untuk docker image, bisa kamu sesuaikan dengan yang kamu ingin gunakan
– /home/docker/nginx/conf.d:/etc/nginx/conf.d Nantinya kita akan membuat file konfigurasi nginx untuk reverse proxy jenkins disini
– /home/docker/log/nginx:/var/log/nginx
– /home/docker/log/nginx/jenkins:/var/log/nginx/jenkins
Untuk meletakkan log nginx jenkins
TZ: Asia/Jakarta Environtment docker untuk menentukan timezone, ini optional, kamu boleh menyertakannya ataupun tidak juga tidak apa apa
– /home/docker/jenkins_home:/var/jenkins_home tempat untuk file – file jenkins diletakkan supaya dapat di akses, nantinya administration password jenkins bisa di lihat di dalam path ini

 

2. Install jenkins dan nginx dengan docker-compose

Setelah kamu membuat file dokcer-compose.yml, lakukan install dengan perintah :

docker-compose up -d

Cek apakah container yang kamu buat dengan docker-compose sudah running atau belum dengan perintah :

docker ps -a

Jika statusnya sudah “UP” , kita masuk ke langkah selanjutnya.

 

3. Buat file konfigurasi Nginx untuk Jenkins

Untuk dapat menjalankan jenkins menggunakan domain dan tanpa mengetikkan port jenkins di browser, kamu perlu membuat konfigurasi reverse proxy untuk jenkins. Karena pada langkah pertama Saya sudah menjelaskan tentang path dimana Saya akan membuat file konfigurasinya, langsung saja kita masuk ke dalam /home/docker/nginx/conf.d

cd /home/docker/nginx/conf.d

buat file konfigurasi nginx untuk reserve proxy jenkins

vim jenkins.conf

masukkan konfigurasi dibawah ini lalu simpan :

upstream jenkins {
  keepalive 32; # keepalive connections
  server jenkins:8080; # jenkins container name and port
}

# Required for Jenkins websocket agents
map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}

server {
  listen          80;       # Listen on port 80 for IPv4 requests

  server_name     jenkins.local;  # replace 'jenkins.local' with your server domain name

  # this is the jenkins web root directory
  # (mentioned in the /etc/default/jenkins file)
  root            /var/run/jenkins/war/;

  access_log      /var/log/nginx/jenkins/access.log;
  error_log       /var/log/nginx/jenkins/error.log;

  # pass through headers from Jenkins that Nginx considers invalid
  ignore_invalid_headers off;

  location ~ "^/static/[0-9a-fA-F]{8}\/(.*)$" {
    # rewrite all static files into requests to the root
    # E.g /static/12345678/css/something.css will become /css/something.css
    rewrite "^/static/[0-9a-fA-F]{8}\/(.*)" /$1 last;
  }

  location /userContent {
    # have nginx handle all the static requests to userContent folder
    # note : This is the $JENKINS_HOME dir
    root /var/lib/jenkins/;
    if (!-f $request_filename){
      # this file does not exist, might be a directory or a /**view** url
      rewrite (.*) /$1 last;
      break;
    }
    sendfile on;
  }

  location / {
      sendfile off;
      proxy_pass         http://jenkins;
      proxy_redirect     default;
      proxy_http_version 1.1;

      # Required for Jenkins websocket agents
      proxy_set_header   Connection        $connection_upgrade;
      proxy_set_header   Upgrade           $http_upgrade;

      proxy_set_header   Host              $host;
      proxy_set_header   X-Real-IP         $remote_addr;
      proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
      proxy_set_header   X-Forwarded-Proto $scheme;
      proxy_max_temp_file_size 0;

      #this is the maximum upload size
      client_max_body_size       10m;
      client_body_buffer_size    128k;

      proxy_connect_timeout      90;
      proxy_send_timeout         90;
      proxy_read_timeout         90;
      proxy_buffering            off;
      proxy_request_buffering    off; # Required for HTTP CLI commands
      proxy_set_header Connection ""; # Clear for keepalive
  }

}

lakukan restart docker-compose :

docker-compose restart

beberapa penjelasan :

server jenkins:8080; Jika kamu memberi nama container jenkinsmu dengan nama lain, ubah pada bagian ini
server_name jenkins.local; Ubah bagian jenkins.local dengan domain name yang kamu miliki atau bisa juga dengan IP server kamu. Jika kamu mau menggunakan domain *.local pada jaringan lokal kamu, kamu bisa baca Membuat Domain Local Sendiri di Linux
access_log /var/log/nginx/jenkins/access.log;
error_log /var/log/nginx/jenkins/error.log;
Log ini dapat kalian akses di /home/docker/log/nginx/jenkins

 

4. Memulai menjalankan Jenkins

Untuk memulai menggunakan jenkins, ada beberapa yang perlu di persiapkan, berikut langkahnya :

#Pertama – Akses Jenkins dan masukkan Administrator password

Installasi telah selesai, sekarang saatnya untuk memulai menjalankan jenkins. Buka jenkins di broser kamu dengan memasukkan url jenkins yang sudah kamu set di konfigurasi nginx.

Saat pertama kali menjalankan jenkins, kamu akan dimintai Administrator password. Kamu dapat menemukannya di dalam folder /home/docker/jenkins_home ( path ini sudah di tentukan di file docker-compose.yml ) . Untuk lebih mudahnya gunakan perintah ini  :

cat /home/docker/jenkins_home/secrets/initialAdminPassword

copy hasilnya, paste pada browser kamu, lalu klik Continue.

 

#Kedua –  Install plugin Jenkins

Selanjutnya kamu akan diarahkan pada Customize Jenkins, disini kamu bisa menginstall plugin yang kamu butuhkan. Kamu bisa memilih Install suggested plugins untuk menginstall plugin yang disarankan oleh jenkins atau kamu bisa memilih sendiri plugin apa saja yang kamu butuhkan dengan mengklik pilihan Select plugins to install.

#Ketiga – Buat user admin Jenkins

Setelah selesai menginstall plugin, kamu akan diminta membuat user admin untuk Jenkins kamu. Isi datanya lalu klik Save and Continue.

#Keempat – Konfigurasi URL Jenkins

Selanjutnya, kamu akan diminta mengkonfigurasi url jenkins kamu, masukkan url jenkins kamu lalu Klik Save and finish.

#Kelima – Jenkins telah siap!

Jenkins sudah siap kamu gunakan, klik Start using Jenkins.

 

Welcome to Jenkins!. Sampai disini kamu telah berhasil menginstall Jenkins serta menjalankannya menggunakan reverse proxy nginx dan melakukan installasi menggunakan docker-compose. Saya rasa cukup sampai disini tutorial yang dapat saya bagikan, tanyakan Saya jika ada yang membingungkan dari tulisan saya, terima kasih 😀

 

SUMBER :

 

Baca Juga :

Lukems: Hanya manusia biasa yang hidup sederhana dan mempunyai keluarga kecil yang bahagia

This website uses cookies.