จากคำถามในกลุ่ม 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 ละ
ตัวอย่างง่าย ๆ
[gist id="be47ac72485e64a38b137eb3ddbe6402" file="docker-compose.yml"]