ติดตั้ง Laravel ด้วย Docker กัน
สวัสดีครับ วันนี้เราจะมาติดตั้ง Laravel ด้วย Docker กัน จะเป็นอย่างไรนั้น เรามาดูกัน
สำหรับใครที่ไม่รู้ว่า Docker คืออะไร สามารถดูรายละเอียดตามด้านล่างนี้ได้เลย
- เริ่มต้นใช้งาน Docker กัน Part 1
- เริ่มต้นใช้งาน Docker กัน Part 2
- รู้จักกับ Volume บน Docker กัน
- เอา Docker Image ขึ้น Docker Hub
- ใช้ Portainer จัดการ Container กัน
เอาล่ะ เรามาเริ่มกันเลย
Laravel คืออะไร Laravel คือ Framework ตัวหนึ่งที่เขียนด้วยภาษา PHP มีหน้าที่ในการช่วยให้เราเขียนเว็บได้ง่าย รวดเร็ว และสะดวกมากขึ้น เพราะว่าตัว Laravel นั้น มีหลายอย่างที่เค้าทำไว้แล้ว เรามีหน้าที่ในการเรียกใช้งานเท่านั้น เช่น Session, Database, Route, Command Line, Queue, Artisan อื่น ๆ อีกมากมาย โดยที่เราไม่ต้องเขียนเอง เราแค่ต้องเรียกใช้งานให้เป็นเท่านั้นเอง รายละเอียดเพิ่มเติมสามารถเข้ามาดูได้ที่นี่
แล้วทำไมเราถึงต้องใช้ Laravel ล่ะ ต้องบอกว่าจริง ๆ แล้ว การเลือกใช้ Framework ของแต่ละภาษานั้น ผู้ใช้งานจำเป็นจะต้องมีความรู้ในเรื่องของการเขียนภาษานั้น ๆ มาระดับหนึ่งก่อน เช่น NestJS ก็ต้องรู้ Javascript, Laravel ก็ต้องรู้ PHP หรือแม้กระทั่ง Gin ก็ต้องรู้ Golang มา แล้วถ้าเราเขียนภาษาพื้นฐานเป็นแล้ว การมาใช้ Framework ก็เป็นตัวเลือกหนึ่ง จากประสบการณ์ส่วนตัว พอมาจับ Laravel Framework ทำให้เรารู้รายละเอียดต่าง ๆ เช่น การเชื่อมต่อฐานข้อมูล การวางโครงสร้างของตัว Laravel การจัดวาง Environment ซึ่งเค้าจัดวางไว้ค่อนข้างดีมาก และเข้าใจได้ง่าย ซึ่งถ้าคนมีความรู้พื้นฐานด้าน PHP มาแล้ว มาเขียนไม่ยาก แต่ต้องเรียนรู้เรื่องฟีเจอร์อื่น ๆ เพิ่มเติมควบคู่กันไป
แล้วทำไมต้องมาติดตั้งบน Docker ก็เพราะว่าปัจจุบันนั้นทุกอย่างส่วนใหญ่จะรันเป็น Container แยก ๆ กันไป และการติดตั้งแบบธรรมดาอาจจะมีความนิยมน้อยลง แต่ต้องบอกก่อนว่าผู้เขียนนั้นเคยติดตั้งแบบใช้ Docker แต่เป็นการสร้าง Docker Image ขึ้นมาเลย ซึ่งเป็นเรื่องที่วุ่นวายมาก ๆ เพราะจะต้องเป็นคนที่มีความรู้เรื่อง Server พอสมควร แต่ปัจจุบันนั้นมีเครื่องมือที่ช่วยให้เราใช้งาน Docker ของ Laravel ได้ง่ายขึ้น แล้ว เดี๋ยววันนี้เราจะมาดูกันว่าติดตั้งกันอย่างไร
ก่อนอื่นเลยเราจะต้องติดตั้ง Laravel ก่อน โดยเราจะใช้ Composer ในการติดตั้ง โดยวิธีการติดตั้ง Laravel นั้น สามารถเข้าไปดูได้ที่นี่
ก่อนอื่นเราต้องเลือก Path ในการติดตั้ง โดยผู้เขียนติดตั้งไว้ใน Folder Docker
เริ่มต้นเรามารันคำสั่ง
composer create-project laravel/laravel tichaky_laravel
รอสักครู่ เมื่อติดตั้งเสร็จแล้ว ก็เข้าไปใน Folder ที่เราติดตั้ง Laravel ได้เลย ในที่นี้เป็น tichaky_laravel
cd tichaky_laravel
จากนั้นรันคำสั่ง
php artisan serve
จะได้ผลลัพธ์ใน Command ดังรูป
ไปที่ http://127.0.0.1:8000 ลองดูผลลัพธ์กันเลย
เราจะเห็นว่า ตอนนี้เราติดตั้งบน Local สำเร็จแล้ว ที่นี้เราก็ใช้งานกันได้ละ
ถ้าเราต้องการทำงานด้วย Docker ล่ะ ทำยังไง ในปัจจุบัน Laravel มีตัวที่ช่วยให้เราทำงานง่ายขึ้นในการทำ Docker ชื่อว่า Laravel Sail โดย Laravel Sail จะใช้คำสั่งเหมือนกับ Docker เลย โดย Laravel Sail จะใช้ docker-compose.yml ในการรัน Docker
ก่อนอื่นเลย ให้ทำการติดตั้ง Laravel Sail ก่อน ขั้นตอนการติดตั้ง Laravel Sail สามารถดูได้ที่นี่ หรือสามารถทำตามนี้ได้เลน
composer require laravel/sail --dev
ติดตั้งเสร็จแล้ว
php artisan sail:install
ขอเลือกเป็น mysql ละกัน พิมพ์ 0 แล้ว Enter
รอสักพักใหญ่ ๆ เลยในการ Pull และติดตั้งต่าง ๆ เมื่อเสร็จแล้ว ถ้าเราเข้าไปดูใน Folder ที่เราติดตั้ง Laravel เราจะได้ไฟล์ docker-compose.yml มา เกิดจาก Laravel Sail นั่นเอง เอาล่ะ เรามารันกันเลย
./vendor/bin/sail up
จากนั้นไปที่ http://localhost/ (เค้าใช้ Port 80 คนละ Port กับที่รัน Local เพราะงั้นไม่ต้องแปลกใจ เราไปแก้ใน docker-compose.yml ได้)
ต้องบอกเลยว่า ง่ายมาก เพราะแต่ก่อนบอกเลยว่าทำยาก เพราะเราต้องเตรียม Docker Image แล้วเซ็ตอัพทุกอย่างให้พร้อม แล้วใส่เข้าไป ซึ่งยุ่งยากมาก ๆ แต่ปัจจุบันสามารถทำได้แบบนี้แหละ
ยังไม่พอ เราสามารถเพิ่มการติดตั้ง Service อื่น ๆ ได้ด้วยคำสั่ง
php artisan sail:add
จะได้หน้าตาดังรูป
ต้องบอกเลยว่า สะดวกมาก แต่ต้องบอกก่อนว่า อันนี้รันบน Local เท่านั้นนะ เพราะในความเป็นจริงแล้ว พอเรารันบน Server หรือ Production จริง ๆ เชื่อได้เลยว่าต้องมีการแก้ docker-compose.yml เพราะบางทีการติดตั้งแบบนี้มันไม่ค่อยสะดวก เพราะอย่าง MySQL บางทีเราก็จะมีเซิฟเวอร์ที่รันฐานข้อมูลเฉพาะเลย แต่การเอาไปรวมไว้ที่ตัวเว็บ ส่วนตัวคิดว่ามันไม่ค่อยเหมาะเท่าไร แต่ก็แล้วแต่งานด้วย เช่น ถ้างาน ๆ นั้นจบในตัว แบบเป็นเว็บเล็ก ๆ การทำแบบนี้ก็ถือว่าเหมาะ เพราะสามารถดูและง่าย ดูที่เดียวจบ แต่ถ้าเป็นเว็บใหญ่มาก ๆ ที่ต้องการแยกส่วนชัดเจน อาจจะไม่เหมาะเท่าไร ส่วนถ้า Dev บน Local การทำแบบนี้จะดีมาก เพราะเราสามารถลงผ่าน Container ได้เลย เวลามีปัญหาเรื่อง Version เราสามารถเปลี่ยนผ่าน docker-compose.yml ได้เลย ไม่ต้องเสียเวลาไปนั่งติดตั้งใหม่บนเครื่องเราจริง ๆ ก็ถื
เอาล่ะ วันนี้ขอจบกันไปก่อนกับการติดตั้ง Laravel ด้วย Docker กัน พอหอมปากหอมคอ เพราะช่วงนี้ไม่ได้เขียน Blog และทำคลิปมานาน อยากมาอัพเดท Diary และเขียนบ้าง เผื่อจะได้ไม่ได้หายไปนาน สำหรับวันนี้ขอจากกันไปก่อน สำหรับบทความหรือคลิปหน้าจะเป็นอะไรก็รอติดตามกันได้เลยครับ สำหรับวันนี้สวัสดีครับ
ช่องทางการติดต่อ
Email: [email protected]
Website: https://blog.tichaky.com/
Facebook: https://www.facebook.com/tichaky