เร่ง Development Workflow ด้วย Docker Compose Watch
ใช้ Compose Watch ซิงก์ไฟล์ rebuild หรือ restart service อัตโนมัติเมื่อโค้ดเปลี่ยน ช่วยลดเวลารอและทำให้ workflow บน container ใกล้เคียงการพัฒนาแบบ local

ภาพรวม
Docker Compose Watch ทำให้ dev workflow เร็วขึ้นแบบที่หลายทีมเพิ่งค้นพบ 🐳⚡
เมื่อก่อนเวลาแก้โค้ดในเครื่อง นักพัฒนามักเจอ 3 เรื่องซ้ำๆ 😵
แก้ไฟล์แล้วต้อง build image ใหม่ รอ container restart บางที mount volume แล้วช้า โดยเฉพาะโปรเจกต์ใหญ่บน macOS และ Windows
Docker Compose Watch เข้ามาช่วยลดจังหวะเสียเวลาเหล่านี้ได้เยอะ 🚀
แนวคิดของมันไม่ใช่แค่ เฝ้าดูไฟล์เปลี่ยน แต่เป็นการกำหนดได้ว่า ถ้าไฟล์แบบนี้เปลี่ยน ให้ทำอะไรต่อทันที
เช่น ไฟล์ source code เปลี่ยน → sync เข้า container ไฟล์ package.json เปลี่ยน → rebuild service ไฟล์ config เปลี่ยน → restart service
จุดที่ทำให้ workflow เร็วขึ้นจริง คือการแยกการตอบสนองตามชนิดของไฟล์ 🔍
แทนที่จะ rebuild ทั้งระบบทุกครั้ง เราสั่งให้ Docker เลือกทำเฉพาะสิ่งที่จำเป็น
ผลลัพธ์ที่เห็นได้ชัด
รอรันแอปน้อยลง ⏱️ CPU ทำงานหนักน้อยลง 💻 ไม่ต้องหาวิธี mount แบบแปลกๆ เพื่อหนีอาการช้า สภาพแวดล้อม dev ใกล้กับ production มากขึ้น 🧩
ตัวอย่างภาพง่ายๆ
โปรเจกต์ Node.js ปกติ แก้ไฟล์ src/app.js นิดเดียว ถ้าใช้วิธีเดิม อาจ rebuild image หรือรอ nodemon ใน volume mount
แต่ถ้าใช้ Compose Watch ไฟล์ใน src ถูก sync เข้า container ตรงๆ แอปรีโหลดต่อได้เลย เร็วกว่าและนิ่งกว่าในหลายเครื่อง ✨
อีกกรณีที่ต่างชัดมาก
ถ้ามีการแก้ package.json หรือ yarn.lock อันนี้ไม่ใช่แค่ sync ไฟล์ เพราะ dependency เปลี่ยน Compose Watch สั่ง rebuild ให้เฉพาะ service นั้นได้ทันที
แปลว่า workflow มีความฉลาดขึ้น 🧠 แก้โค้ดเล็กน้อย ใช้วิธีเบา แก้ dependency ใหญ่ ค่อยใช้วิธีหนัก
สิ่งนี้เหมาะมากกับทีมที่มีหลาย service เช่น frontend, backend, worker, admin panel เพราะแต่ละ service ตั้งกฎ watch ต่างกันได้
ประโยชน์ที่คนมักมองข้ามอีกข้อ 📌
ลดคำสั่งที่ต้องจำ จากเดิมที่ต้องสลับ docker compose up, build, restart เอง ตอนนี้ให้นิยามพฤติกรรมไว้ใน compose ได้มากขึ้น
ทีมใหม่เข้ามาในโปรเจกต์ก็เริ่มงานง่าย เพราะ workflow ถูกบันทึกเป็น config ไม่ได้ซ่อนอยู่ในความเคยชินของรุ่นพี่ 👨💻👩💻
แนวคิดนี้คล้ายการย้ายความรู้จากปากต่อปาก ไปสู่ automation ที่ทุกคนใช้ร่วมกัน
อีกเรื่องที่น่าสนใจ Compose Watch ช่วยลดปัญหา works on my machine ได้ทางอ้อม 🔧 เพราะการ sync, rebuild, restart ถูกกำหนดแบบเดียวกันทั้งทีม
ไม่ได้หมายความว่ามันแทน hot reload ทุกอย่างได้หมด แต่ในหลายโปรเจกต์ มันช่วยอุดช่องว่างระหว่าง local dev และ containerized dev ได้ดีมาก
ถ้าทีมยังรู้สึกว่า Docker ตอนพัฒนา ช้า หน่วง และเสีย flow 😮💨 สาเหตุอาจไม่ใช่ Docker เสมอไป แต่อาจเป็นเพราะยังใช้ workflow แบบ rebuild ทั้งก้อนอยู่
Compose Watch เลยเป็นเครื่องมือเล็กๆ ที่เปลี่ยนความรู้สึกตอนพัฒนาได้มากกว่าที่คิด 🛠️
เหมาะกับคนที่อยากได้
ความเร็วตอนแก้โค้ด ⚡ ความเสถียรของ environment 🧱 ขั้นตอน onboarding ที่ง่ายขึ้น 🙌 การทำงานร่วมกับหลาย service แบบเป็นระบบ 🔄
สรุปสั้นๆ
Docker Compose Watch ไม่ได้ทำให้แค่ไฟล์อัปเดตเร็วขึ้น แต่มันทำให้การพัฒนาใน container ฉลาดขึ้น เลือก sync เท่าที่ต้อง sync เลือก rebuild เท่าที่ต้อง rebuild และลดเวลารอที่สะสมอยู่ทั้งวันแบบเห็นผลจริง 🔥
แนวทางนำไปใช้
- นำแนวคิดจากโพสต์นี้ไปทดลองกับงานจริงของคุณ
- แยกเป็นขั้นตอนเล็ก ๆ แล้วทำทีละส่วน
- บันทึกผลลัพธ์และสิ่งที่เรียนรู้เพื่อต่อยอด
สรุป
ใช้ Compose Watch ซิงก์ไฟล์ rebuild หรือ restart service อัตโนมัติเมื่อโค้ดเปลี่ยน ช่วยลดเวลารอและทำให้ workflow บน container ใกล้เคียงการพัฒนาแบบ local