diff --git a/Dockerfile b/Dockerfile index 7ada541..bc14cbe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM php:8.2-fpm -# 1. 確保安裝了必要的系統套件 +# 1. 安裝系統必要的擴充套件(Laravel 需要 zip, unzip 等才能解壓套件) RUN apt-get update && apt-get install -y \ git \ curl \ @@ -8,19 +8,23 @@ RUN apt-get update && apt-get install -y \ libonig-dev \ libxml2-dev \ zip \ - unzip + unzip \ + && docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd -# 2. 設定容器內的工作目錄(通常習慣用 /var/www) +# 🎯 2. 從官方 Composer 鏡像中,直接把 composer 執行檔複製進來 +COPY --from=composer:latest /usr/bin/composer /usr/bin/composer + +# 3. 設定工作目錄 WORKDIR /var/www -# 3. 把本機當前目錄下的「所有檔案」(包含 artisan、app、routes 等)全部複製進容器的 /var/www +# 4. 把專案檔案複製進去 COPY . /var/www -# 4. 安裝 Composer 依賴(如果有的話,可以加上,沒有就維持你原本的) -# COPY --from=composer:latest /usr/bin/composer /usr/bin/composer -# RUN composer install --no-interaction --optimize-autoloader --no-dev +# 🎯 5. 在容器內直接執行 composer install,把 vendor 長出來! +# 加上 --no-dev 是因為生產環境不需要測試套件,速度會快非常多 +RUN composer install --no-interaction --optimize-autoloader --no-dev EXPOSE 9000 -# 🎯 關鍵:在啟動前,用「絕對路徑」去執行 artisan,確保一定找得到它! +# 6. 啟動 Laravel HTTP 伺服器 CMD ["php", "/var/www/artisan", "serve", "--host=0.0.0.0", "--port=9000"] \ No newline at end of file