Debug Spring Boot Apps on Red Hat OpenShift4 (Bahasa)

Kisah ini berawal dari sebuah pertanyaan dari salah satu pengguna OpenShift tentang bagaimana cara debug aplikasi Spring Boot yang berjalan sebagai container di OpenShift. Mengingat cukup banyak teman-teman coder yang menggunakan framework ini sebagai aplikasi microservice, maka saya coba buat tutorialnya untuk remote debug aplikasi java pada OpenShift4.

Flow nya seperti gambar berikut.

Prerequisite

  1. Preinstalled OpenShift Container Platform 4 (OCP4)
  2. OpenShift client command line tools (oc tools) atau k8s cli. Download disini.
  3. IDE favorit mu. Mimin menggunakan Red Hat CodeReady Studio (Eclipse based) dan VSCode pada tutorial ini.
  4. Deploy aplikasi Springboot mu ke OpenShift (sample apps on GitHub). Tutorial kali ini saya menggunakan s2i untuk deploy aplikasinya.

Step 1 : Set Debug Mode as Environment Variable

Tambahkan environment variable JAVA_DEBUG=true pada Deployment atau Deployment Config

Atau, menggunakan oc atau kubectl command line:

$ kubectl set env deployment/springboot-sample-apps-git JAVA_DEBUG=true

pada log startup akan ada info debug port aplikasi.

Listening for transport dt_socket at address: 5005

Step 2 : Port Forward Debug port to Your Local Machine

lihat pod aplikasi yang Running:

$ kubectl get pods | grep Running....springboot-sample-apps-git-XXXX   1/1       Running

Port forward port debug pada pod target

$ kubectl port-forward springboot-sample-apps-git-XXXX 5005:5005....Forwarding from 127.0.0.1:5005 -> 5005
Forwarding from [::1]:5005 -> 5005

Step 3 : Setup Remote Debug on Your IDE

Go to Debug Configuration > Remote Java Application

Connection Type: Standard (Socket Attach)

Host: localhost

Port: 5005

jika kamu menggunakan VSCode. tambahkan konfigurasi launch.json pada folder .vscode

{   "version": "0.2.0",   "configurations": [      {         "type": "java",         "name": "Debug (Attach)",         "projectName": "springboot-sample-apps",         "request": "attach",         "hostName": "localhost",         "port": 5005      }
]
}

Step 4 : Voila! Debug Aplikasi Mu

buka pada browser http://$YOUR_APPS_ROUTE/swagger-ui.html dan coba /api/v1/home

Debug pada VSCode:

Semoga bermanfaat.

Pranala Luar

--

--

Erfin Feluzy
Development using RedHat Product. (This is an Unofficial Blog)

Kuli Ketik dan AppDev Solution Architect at Red Hat. Eat, Code, Sleep — repeat.