FROM php:8.2-fpm

# 1. 安裝系統套件（這層幾乎不變，永遠快取）
RUN apt-get update && apt-get install -y \
    libpq-dev \
    git \
    curl \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    zip \
    unzip \
    && rm -rf /var/lib/apt/lists/*

RUN docker-php-ext-install pdo pdo_pgsql pdo_mysql mbstring exif pcntl bcmath gd

COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

WORKDIR /var/www

# 🎯 2. 【核心魔法】只複製套件清單檔案
COPY composer.json composer.lock /var/www/

# 🎯 3. 在這裡就先執行安裝！
# 因為上面只複製了 json/lock，只要你沒裝新套件，這層 Docker 就會直接跳過、秒速套用快取！
RUN composer install --no-interaction --no-scripts --no-autoloader --no-dev

# 4. 最後才複製你天天在修改的 Laravel 原始碼（如 Controller、Routes）
COPY . /var/www

# 5. 補上自動載入優化
RUN composer dump-autoload --optimize --no-dev

EXPOSE 9000

CMD ["php", "/var/www/artisan", "serve", "--host=0.0.0.0", "--port=9000"]