# ========================= # Stage 1: Dependencies # ========================= FROM composer:2 AS vendor WORKDIR /app COPY composer.json composer.lock ./ # install dependencies cleanly (NO MIRROR, NO DEV) RUN composer install \ --no-dev \ --prefer-dist \ --no-interaction \ --optimize-autoloader # ========================= # Stage 2: Runtime # ========================= FROM php:8.2-fpm-bookworm WORKDIR /var/www/html # system deps RUN apt-get update && apt-get install -y \ git \ unzip \ libzip-dev \ curl \ && docker-php-ext-install pdo pdo_mysql zip \ && rm -rf /var/lib/apt/lists/* # copy vendor from stage 1 COPY --from=vendor /app/vendor ./vendor # copy project files COPY . . # permissions RUN chown -R www-data:www-data /var/www/html # entrypoint COPY ./docker/php/entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] EXPOSE 9000 CMD ["php-fpm"]