ปัญหาที่พบเจอ

เมื่อนำ Docker มาใช้งานร่วมกับระบบ Continuous Integration (CI) คือ
ในแต่ละ container จะต้อง start service ต่าง ๆ ขึ้นมา
ซึ่งพบว่าแต่ละ service ก็มีความช้าและเร็วในการ start service
ดังนั้นถ้าต้องการทดสอบระบบที่ต้องใช้ service เหล่านี้
จะไม่สามารถทดสอบได้
หรือการทดสอบพังแน่นอน

เนื่องจาก service ยัง start ไม่เสร็จนั่นเอง

วิธีการแก้ไขปัญหา

สร้าง shell script สำหรับตรวจสอบ service ว่า start สำเร็จหรือไม่
ซึ่งจะทำการวน loop ตรวจสอบไปเรื่อย ๆ
ดังนี้

ถ้าใช้ผ่าน docker compose ก็ใช้ไม่ยาก
สามารถเขียนได้แบบนี้

เพียงเท่านี้ก็สามารถแก้ไขปัญหาที่พบเจอได้เรียบร้อย

Reference Websites
https://8thlight.com/blog/dariusz-pasciak/2016/10/17/docker-compose-wait-for-dependencies.html
https://github.com/dadarek/docker-wait-for-dependencies

Tags: