mirror of
https://github.com/henry4682/finance_app.git
synced 2026-07-16 08:20:00 +00:00
33 lines
985 B
Docker
33 lines
985 B
Docker
FROM php:8.2-fpm
|
||
|
||
# 1. 安裝系統套件(這層幾乎不變,永遠快取)
|
||
RUN apt-get update && apt-get install -y \
|
||
git \
|
||
curl \
|
||
libpng-dev \
|
||
libonig-dev \
|
||
libxml2-dev \
|
||
zip \
|
||
unzip \
|
||
&& docker-php-ext-install 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"] |