จาก Docker Desktop 4.8 ใหม่นั้น
ได้เพิ่มเรื่องของ Docker Extension ออกมาให้ใช้งาน
ช่วยให้เราสามารถขยายความสามารถ Docker ตามที่ต้องการได้มากขึ้น
โดยทาง Docker ได้ปล่อย SDK มาให้ใช้งานด้วยเช่นกัน
แต่ยังอยู่ใน beta version เท่านั้น
ดังนั้นความสามารถต่าง ๆ อาจจะเปลี่ยนแปลงได้เสมอ
เพื่อความสนุกสนานก็มาลองสร้าง Docker Extension เล่นกันหน่อย
เริ่มด้วยติดตั้ง extension ดังนี้
[gist id="d163ad4637ab6b1dcc31a68d82986fbf" file="1.txt"]จากนั้นทำการสร้าง extension ขึ้นมา
สร้างด้วยภาษา Go สำหรับฝั่ง backend หรือ REST API
ที่ติดต่อกับทาง Docker engine ซึ่งใช้ library ต่าง ๆ ดังนี้
- Echo สำหรับพัฒนา REST API
- Logrus สำหรับการจัดการ logging
- Testify สำหรับการทดสอบ
ส่วนฝั่ง UI ใช้ ReactJS
[gist id="d163ad4637ab6b1dcc31a68d82986fbf" file="2.txt"]สามารถดู code ที่ generate มาให้ได้ทั้ง
ในฝั่ง backend ที่เขียนด้วยภาษา Go
[gist id="d163ad4637ab6b1dcc31a68d82986fbf" file="main.go"]และฝั่ง UI ที่พัฒนาด้วย ReactJS
[gist id="d163ad4637ab6b1dcc31a68d82986fbf" file="App.js"]ในการ build ใช้ makefile หรือ Docker
ทำการ build extension ผ่าน makefile หรือ docker build ได้เลย
[gist id="d163ad4637ab6b1dcc31a68d82986fbf" file="3.txt"]เมื่อผ่านแล้ว ทำการ install extension ที่สร้างมาไปยัง Docker engine ที่เครื่องของเรา
[gist id="d163ad4637ab6b1dcc31a68d82986fbf" file="4.txt"]ลองดูผลการติดตั้งใน Docker Desktop ได้ดังรูป
หลังจากที่ทดสอบเรียบร้อยแล้ว สามารถ push ขึ้นไปยัง Extensions Marketplace
เป็นการ push ขึ้นไปที่ Docker Hub
ซึ่งใช้เวลานานมาก ๆ ทนหน่อย
เพียงเท่านี้ก็สามารถสร้าง Docker extension แบบง่าย ๆได้แล้ว
เป็นอีกความสามารถที่น่าสนใจของ Docker