การสร้าง docker-compose ให้กับโปรเจกต์ Laravel + Mariadb + phpmyadmin

Thanainan Khamthaen
I GEAR GEEK
Published in
2 min readFeb 9, 2021

สำหรับบทความนี้ผมจะไม่เจาะลึก docker มากนัก จุดประสงค์คือ เน้นก๊อบปี้วางแล้วใช้ได้เลย แต่ก็อธิบายให้พอรู้จับใจความได้ มาเริ่มกันเลยครับ ~~

สิ่งที่ต้องมี

  1. Git (เอาไว้โคลน Laravel)
  2. Docker (หัวใจหลักในการรัน)

ทำการโคลน Laravel จาก github

git clone https://github.com/laravel/laravel.git laravel-mariadb-docker

เข้าไปที่โฟลเดอร์ laravel-mariadb-docker

  1. git เข้าไปที่ branch v.8.5.9 (เป็น version ล่าสุดตอนกำลังเขียนบทความ)
  2. ลบไฟล์ .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 ไว้

สรุป

สำหรับบทความนี้ผมไม่ได้เจาะลึก เน้นใช้งาน ก๊อบปี้แล้วไปใช้งานได้เลย เผื่อไว้สำหรับผู้ที่ต้องการนำไปใช้งานต่อยอด หากผิดพลาดประการใด ขออภัยด้วยครับ และ สามารถแจ้งไว้เพื่อให้ผมแก้ไขบทความนี้ต่อไปครับ ขอบคุณมากครับที่ติดตามจนจบ

Reference

--

--