หลังจากที่ติดตั้ง GraalVM ไปแล้ว
คิดไม่ออกว่าจะเอาไปทำอะไรบ้าง !!
ลองนั่งอ่านไปเรื่อย ๆ ก็พบว่ามี GraalVM Native Image ให้
มี command ชื่อว่า Native Image Generator ให้ใช้
ทำการ compile มายัง native binary ให้เลย
นั่นหมายความว่า
ถ้าเป็นพวกภาษา Java, Kotlin และ Scala ก็ไม่จำเป็นต้องมี JVM นะสิ
ดังนั้นจึงคิดว่า
น่าจะนำวิธีนี้ มาใช้ลดขนาดของ Docker Image ของระบบ
ที่พัฒนาด้วยภาษา Java ดูหน่อย
จากเดิมที่มีขนาดใหญ่มาก ๆ หรือประมาณ 100 MB ขึ้นไป
หรืออาจจะ custom หน่อยก็ประมาณ 50-70 MB
แต่ถ้านำ GraalVM Native Image มาใช้น่าจะลดลงไปได้อีก
มาเริ่มกันเลย
เริ่มจาก code ตัวอย่าง เป็น Hello World ง่าย ๆ
[gist id="5ac03b839bf2fa6f72a0227b33ba13a4" file="Hello.java"]จากนั้นมีขั้นตอนการใช้งานดังนี้
- ทำการ compile ด้วยคำสั่ง javac
- ทำการสร้าง JAR file ที่สามารถ execute ได้ ด้วยคำสั่ง jar
- ทำการติดตั้ง GraalVM Native Image
- ทำการสร้าง native binary จาก JAR file ด้วยคำสั่ง native-image
ขั้นตอนทั้งหมดเขียนไว้ใน Dockerfile
จะได้ Docker Image ที่ต้องการ มาดูผลงานกัน
ทำการ run ด้วยคำสั่ง
[gist id="5ac03b839bf2fa6f72a0227b33ba13a4" file="run.txt"]สิ่งที่เห็นได้ชัดคือ ขนาดของ Docker Image ที่ได้คือ 12.5 MB เท่านั้นเอง
มันน่าสนใจดีนะครับ ส่วนเรื่อง performance ค่อยว่ากันอีกที