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

ซึ่งไม่ควรทำอย่างยิ่ง ด้วยเรื่องของความปลอดภัยนั่นเอง
แต่ความง่ายมันไม่เข้าใครออกใคร จึงชอบทำกัน !!

จึงแนะนำไปว่าควรปรับเปลี่ยนให้ทำง่าย ๆ ดังนี้

เริ่มจากอ่านเอกสารจาก Docker เลย
เรื่องการใช้งาน Environment variables ใน Docker compose

โดยหลัก ๆ แนะนำให้แยกออกมาจากซะ

จากนั้นนำไปใส่ได้หลายที่ ประกอบไปด้วย

  • กำหนดจาก OS
  • ส่งผ่าน option -e env_name:value ของ docker-compose
  • ถ้าใช้ไฟล์ .env ก็กำหนด env_file ในไฟล์ docker-compose.yml
  • ใช้งาน Docker secret ได้

ปล. ถ้าใช้งานไฟล์ .env แล้วก็อย่า push ขึ้น repository ละ

ตัวอย่างง่าย ๆ