การสร้าง docker-compose ให้กับโปรเจกต์ Laravel + Mariadb + phpmyadmin
สำหรับบทความนี้ผมจะไม่เจาะลึก docker มากนัก จุดประสงค์คือ เน้นก๊อบปี้วางแล้วใช้ได้เลย แต่ก็อธิบายให้พอรู้จับใจความได้ มาเริ่มกันเลยครับ ~~
สิ่งที่ต้องมี
- Git (เอาไว้โคลน Laravel)
- Docker (หัวใจหลักในการรัน)
ทำการโคลน Laravel จาก github
git clone https://github.com/laravel/laravel.git laravel-mariadb-docker
เข้าไปที่โฟลเดอร์ laravel-mariadb-docker
- git เข้าไปที่ branch v.8.5.9 (เป็น version ล่าสุดตอนกำลังเขียนบทความ)
- ลบไฟล์ .git เพราะเราไม่ต้องการ git ของ Laravel ที่ clone มาติดมาในโปรเจกต์นี้
cd laravel-mariadb-dockergit checkout v8.5.9rm -rf .git
สร้างไฟล์ docker-compose.yml จากนั้นก๊อบปี้โค้ดด้านล่างไปวางเลย
อธิบายคร่าว ๆ ในไฟล์นี้มีอยู่ 3 service (หรือ container) ประกอบไปด้วย
- api ใช้เปิด Laravel
- db ใช้เปิด Mariadb
- pma ใช้ดู database manageemeent
สร้างไฟล์ Dockerfile
สร้างไฟล์ default.conf
สร้างไฟล์ upload.
ทำการแก้ค่าใน .env.example ตามด้านล่าง
DB_CONNECTION=mysqlDB_HOST=appDB_PORT=3306DB_DATABASE=appDB_USERNAME=rootDB_PASSWORD=example
ทำการก๊อบปี้ .env.example ไปที่ .env
cp .env.example .env
รันคำสั่งเพื่อให้ docker start
docker-compose up
ทำการ generate key ของ Laravel
docker-compose exec api php artisan key:generate
ทดสอบการเชื่อมต่อฐานข้อมูล Mariadb โดยการ migrate
docker-compose exec api php artisan migrate
ทดสอบ phpmyadmin โดยเข้าไปที่ http://localhost:8001 จะเห็น table ที่ laravel default migration ไว้
สรุป
สำหรับบทความนี้ผมไม่ได้เจาะลึก เน้นใช้งาน ก๊อบปี้แล้วไปใช้งานได้เลย เผื่อไว้สำหรับผู้ที่ต้องการนำไปใช้งานต่อยอด หากผิดพลาดประการใด ขออภัยด้วยครับ และ สามารถแจ้งไว้เพื่อให้ผมแก้ไขบทความนี้ต่อไปครับ ขอบคุณมากครับที่ติดตามจนจบ