จากบทความเรื่อง การวางโครงสร้างระบบด้วย Spring boot
ก็มีถึงกระบวนการ deploy กันบ้าง
ซึ่งเลือกที่จะจัดการผ่าน Docker
โดยสิ่งที่คิดไว้จะมี 2 container คือ

  1. สำหรับ Database ซึ่งคือ MariaDB
  2. สำหรับการ run ระบบด้วย Spring boot

ดังนั้นมาลงมือทำกันหน่อย
เพื่อทำให้กระบวนการพัฒนาและ deploy มันสะดวกสบายมากขึ้น
แน่นอนว่า สนุกสนานกันอย่างแน่นอน

ปล. ก่อนที่จะมาใช้ Docker นั้น
ขอแนะนำให้ทำการติดตั้งและ configuration แบบปกติให้ได้ก่อนนะครับ
ถ้าทำไม่ได้อย่าเพิ่งนำ Docker มาใช้นะ
มิเช่นนั้น มันจะงงไปกันใหญ่

มาเริ่มกันเลย

Container ที่ 1 คือ MariaDB

ซึ่งทำการสร้าง container จาก image ของ MariaDB ที่ Docker Hub
การสร้าง container สำหรับ MariaDB นั้น
สามารถกำหนดได้ง่าย ๆ เหมือนกับ MySQL เลย ดังนี้

คำอธิบาย
container ชื่อว่า demo
กำหนด password ของ root และสร้าง username สำหรับเข้าใช้

Container ที่ 2 คือ Spring boot application ของเรานั่นเอง

ซึ่งมีวิธีการหลายแบบตามความชอบ
แต่วิธีการที่เลือกใช้คือ Docker maven plug-in
เพราะว่าใช้งาน Apache Maven ในการพัฒนาอยู่แล้ว
จะทำการสร้าง image ของระบบงานมาให้
จากนั้นจึงทำการสร้าง container จาก image นี้นั่นเอง
วิธีการก็ไม่ยากดังนี้

1. ทำการเลือก based image ของ Java และสร้าง Dockerfile
สำหรับการเพิ่มไฟล์ JAR ของ Spring boot application ชื่อว่า demo-api.jar เข้าไป

2. เพิ่มขั้นตอนการ build image ใน Apache Maven

3. ทำการ build และสร้าง image ผ่าน Apache Maven
ด้วยคำสั่ง

$mvn clean package docker:build

ผลที่ได้คือ image นั่นเอง
โดยจากตัวอย่างนั้น image ชื่อว่า demo/rest

4. ทำการสร้าง container จาก image จากข้อ 3
สิ่งที่สำคัญก็คือ กำหนด link ไปยัง container ของ MariaDB ด้วย
และกำหนด port สำหรับเข้าใช้งานซะนั่นคือ 8080

เพียงเท่านี้ก็สามารถสร้าง container ที่เราต้องการขึ้นมาอย่างง่ายดาย
และสามารถทำขั้นตอนเหล่านี้ซ้ำแล้วซ้ำเล่าได้เท่าที่ต้องการ
ชีวิตของการพัฒนาระบบน่าจะดีขึ้นและสนุกมากขึ้นไปอีกนะ !!

หรือถ้าชอบใช้ Docker compose สามารถ config ได้ดังนี้

Reference websites
https://spring.io/guides/gs/spring-boot-docker/