Come on Compose

#2 docker-compose with | Thohirah Husaini

Thohirah.
2 min readApr 19, 2018

ลองนึกภาพดูว่า เวลาเราต้องทำงานเป็นทีมแล้วต้อง config environment ให้เหมือนกันทุกคนเพื่อให้ทำงานได้ หรือเรา รัน code เดียวกันในเครื่องเราแล้วผ่านฉลุย แต่รันเครื่องคนอื่นแล้วทำไมมันไม่สวยงามกันน่ะ

เราได้แนะนำให้รู้จักกับ Docker กันไปบ้างแล้วใน ซึ่งเป็นการแนะนำการติดตั้งซะมากกว่าใน

Discover Docker

มาทำความเข้าใจกันอีกนิด ก่อนจะไปรู้จัก docker compose ซึ่งเป็นเหมือนทางลัดการทำงานของเรา

ทำไมต้อง Docker ?

Docker เข้ามาทำให้เราหมดกังวลเรื่องสภาพแวดล้มการทำงานที่ต่างกัน ทั้งยังประหยัดเวลาตั้งค่าและประหยัดพื้นที่ได้มากขึ้น เพราะ Docker อยู่บนพื้นฐานของ container ซึ่งเป็น concept ของการสร้าง Environment ให้ซอฟต์แวร์ทำงานได้โดยไม่กวนกับซอฟต์แวร์ตัวอื่นๆ บน OS นอกจากนี้ความเบาของ Docker ก็เป็นอีกหนึ่งจุดเด่น เพราะมันอาศัยความสามารถ ของ OS ในเครื่องเรานั่นเอง อีกอย่างคือ Docker Hub ก็มีเกือบทุกอย่างที่เราต้องการเพียง pull ลงมาเท่านั้นนอกจากนั้น เรายังเก็บ image ที่เราสร้างไว้ขึ้นไปบน Docker Hub ได้อีกด้วย

ปกติเเล้วเจ้า Docker จะสร้าง image ขึ้นมาโดย อัติโนมัติ โดยอ่านคำสั่งจาก Dockerfile ซึ่งเจ้า Dockerfile ก็จะมีหน้าตาประมาณนี้

โดย Dockerfile จะประกอบไปด้วยชุดคำสั่งในการสร้าง image ที่เราต้องการขึ้นมาโดยเราใช้คำสั่ง

$ docker build -t testnode.

หลังจาก build คำสั่งตามลำดับมาได้แล้วก็สามารถ รัน container และใช้งานได้เท่าที่สบายใจ

$ docker container run — rm -p80:3000 testnode

นี่เป็นตัวอย่างการสร้างเพียงหนึ่ง container เท่านั้น ถ้าหากเราต้องการมากกว่านั้นหล่ะ ? เพราะปกติของการทำงาน image เดียวคงไม่ตอบโจทย์

Come on Compose กันเถอะ

docker-compose เป็นฮีโร่ที่เข้ามาจัดการเรื่อง multi-container คือเราใช้ YAML file เพื่อ config application’s services ของเรา หลังจากนั้น ด้วยคำสั่งเดียว ก็จะสามารถ start ทุก service ที่เรา config เอาไว้ได้เราใช้ compose ได้ทุก environments ไม่ว่าจะเป็น ขั้น production, พัฒนา, ทดสอบ ตลอดจนการพัฒนาแบบ continuous integration

เราสามารถใช้ docker-compose ได้โดยเพิ่มไฟล์ docker-compose.yml เอาไว้ใน project ของเรา และ รัน docker-compose up และทุก service จะรันขึ้นมา

นี่คือหน้าตาของไฟล์ docker-compose.yml

เมื่อมี ไฟล์ compose แล้วก็สามารถใช้งานได้โดยใช้คำสั่ง

$ docker-compose up -d --build

ถ้าต้องการสร้างไฟล์ compose ของ service อื่นๆก็ลองค้นหาเพิ่มใน Docker Hub ได้เช่นกัน

อีกหนึ่ง resource น่าอ่านและลองทำตามได้ไม่ยากเลย

ลองศึกษาและใช้งานกันดูเชื่อว่าชีวิตจะง่ายขึ้นเยอะเลย 🌟

--

--