Docker PHP+MySQL สำหรับ Laravel new version

จาก post เก่า – https://iotnoob.com/wordpress/2026/02/10/%e0%b8%a5%e0%b8%87-laravel-version-%e0%b9%80%e0%b8%81%e0%b9%88%e0%b8%b2%e0%b9%86-%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2-docker/

เพื่อติดตั้ง laravel version ใหม่ๆ นั้น จำเป็นต้อง มี php version ใหม่ ให้ดีก็ติดตั้ง MySQL version ใหม่ไปด้วยเลย

รอบนี้อยากจะใช้งาน filament ด้วย เลยจัดการด้วย Docker ซักหน่อย

services:
  # PHP + Apache Service
  php-apache:
    build: ./apache_php
    ports:
      - "8099:80"
    volumes:
      - ./www:/var/www/html
    networks:
      - lamp-network
      - my_shared_network
    depends_on:
      - mysql

  # MySQL Service
  mysql:
    image: mysql:8.4
    restart: always
    command: sh -c "rm -f /var/lib/mysql/mysql.sock && docker-entrypoint.sh mysqld"
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: filament
      MYSQL_USER: thada
      MYSQL_PASSWORD: 123456
    ports:
      - "3399:3306"
    volumes:
      - ./mysql_data:/var/lib/mysql
    networks:
      - lamp-network
      - my_shared_network
    


networks:
  lamp-network:
    driver: bridge
  my_shared_network:
    external: true
FROM php:8.3-apache

# ติดตั้ง System Dependencies
RUN apt-get update && apt-get install -y \
    zip unzip git curl gnupg libicu-dev libzip-dev && rm -rf /var/lib/apt/lists/*

# ติดตั้ง Node.js (ตัวอย่างนี้คือเวอร์ชัน 16 ซึ่งเสถียรสำหรับโปรเจกต์ยุค PHP 7.4)
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - \
    && apt-get install -y nodejs

# ติดตั้ง Extension ที่จำเป็นสำหรับ PHP ยุคใหม่ และ MySQL (mysqli / pdo_mysql)
# ติดตั้ง PHP Extensions
RUN docker-php-ext-configure intl \
    && docker-php-ext-install mysqli pdo pdo_mysql intl zip

# ติดตั้ง Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# เปิดใช้งาน mod_rewrite สำหรับ Apache (จำเป็นสำหรับ Framework อย่าง Laravel/Filament)
RUN a2enmod rewrite

พอสร้าง folder structure แล้วก็สามารถสั่ง

docker compose up -d –build

เพื่อสั่ง build php ก่อน

ถ้าไม่มีปัญหาอะไร (น่าจะไม่มีแล้ว) ก็สามารถสั่งติดตั้ง Laravel (version 13) + Filament (5.0) ได้

ถ้าติดตั้ง Filament เรียบร้อยแล้ว เราจะสามารถเข้าใช้งานหน้า admin ของ Filament ตามนี้ได้