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"]