
ปัญหา ทำการพัฒนาระบบงานด้วย NodeJS ทำงานร่วมกับ MySQL ผ่าน ORM library ชื่อว่า Sequelizeในการ build และ run สำหรับการพัฒนา จะใช้งาน Docker composeแต่ตอน run เจอปัญหา การเชื่อมต่อไปยัง MySQL ดังนี้

จากคำถามในกลุ่ม Docker Thailandเรื่องของการใช้ Environment variable ใน Docker composeซึ่งที่เขียนมาใน post นั้น ทำการ hard code พวก sensitive data ไว้ในไฟล์ docker-compose.yml เลยยกตัวอย่างเช่น hostname/ip, username และ password ของ database ซึ่งไม่ควรทำอย่างยิ่ง ด้วยเรื่องของความปลอดภัยนั่นเองแต่ความง่ายมันไม่เข้าใครออกใคร จึงชอบทำกัน !!

ปัญหาหนึ่งที่ได้มักเจอเมื่อใช้งาน Docker compose คือ ลำดับการ start ของ service ต่าง ๆ นั่นเอง แน่นอนว่าใน docker compose ก็จะมี depends_on ให้ใช้งาน แต่ปัญหาก็ยังมีอยู่คือ Service ต่าง ๆ ก็ start ตามลำดับ แต่ว่ามีบาง service ที่ start แล้วแต่ยังไม่พร้อมใช้งาน ซึ่งอาจจะทำให้เกิดปัญหากับ service อื่น ๆ ที่ต้องใช้งานตอน start เช่นกัน