FROM php:8.4-fpm-alpine AS base RUN apk add --no-cache \ libzip-dev \ zlib-dev \ unzip \ git \ curl \ && docker-php-ext-install zip pcntl \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer WORKDIR /var/www/html # --- builder: composer install without dev deps, no scripts --- FROM base AS builder COPY composer.json composer.lock ./ RUN composer install --no-dev --no-scripts --no-plugins --prefer-dist --no-interaction # --- runtime: copy app code on top of vendor/ --- FROM base AS runtime COPY --from=builder /var/www/html/vendor /var/www/html/vendor COPY composer.json composer.lock ./ COPY bin ./bin COPY config ./config COPY public ./public COPY src ./src COPY storage ./storage RUN chown -R www-data:www-data /var/www/html/storage CMD ["php-fpm"]