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 :