mirror of
https://github.com/henry4682/finance_app.git
synced 2026-07-16 00:10:00 +00:00
This commit is contained in:
19
Dockerfile
19
Dockerfile
@@ -1,6 +1,6 @@
|
||||
FROM php:8.2-fpm
|
||||
|
||||
# 1. 安裝系統必要的擴充套件(Laravel 需要 zip, unzip 等才能解壓套件)
|
||||
# 1. 安裝系統套件(這層幾乎不變,永遠快取)
|
||||
RUN apt-get update && apt-get install -y \
|
||||
git \
|
||||
curl \
|
||||
@@ -11,20 +11,23 @@ RUN apt-get update && apt-get install -y \
|
||||
unzip \
|
||||
&& docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd
|
||||
|
||||
# 🎯 2. 從官方 Composer 鏡像中,直接把 composer 執行檔複製進來
|
||||
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
||||
|
||||
# 3. 設定工作目錄
|
||||
WORKDIR /var/www
|
||||
|
||||
# 4. 把專案檔案複製進去
|
||||
# 🎯 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. 在容器內直接執行 composer install,把 vendor 長出來!
|
||||
# 加上 --no-dev 是因為生產環境不需要測試套件,速度會快非常多
|
||||
RUN composer install --no-interaction --optimize-autoloader --no-dev
|
||||
# 5. 補上自動載入優化
|
||||
RUN composer dump-autoload --optimize --no-dev
|
||||
|
||||
EXPOSE 9000
|
||||
|
||||
# 6. 啟動 Laravel HTTP 伺服器
|
||||
CMD ["php", "/var/www/artisan", "serve", "--host=0.0.0.0", "--port=9000"]
|
||||
Reference in New Issue
Block a user