# syntax=docker/dockerfile:1.7 FROM node:22-alpine AS frontend WORKDIR /var/www/html COPY package.json ./ RUN npm install COPY resources ./resources COPY public ./public COPY vite.config.js ./ RUN npm run build FROM composer:2 AS vendor WORKDIR /var/www/html COPY composer.json composer.lock ./ RUN composer install \ --no-dev \ --no-interaction \ --no-progress \ --prefer-dist \ --optimize-autoloader \ --no-scripts \ --ignore-platform-reqs FROM php:8.2-apache WORKDIR /var/www/html RUN apt-get update && apt-get install -y \ libzip-dev \ libicu-dev \ unzip \ curl \ default-mysql-client \ && docker-php-ext-install pdo_mysql bcmath exif intl zip \ && a2enmod rewrite headers expires \ && rm -rf /var/lib/apt/lists/* COPY . . COPY --from=vendor /var/www/html/vendor ./vendor COPY --from=frontend /var/www/html/public/build ./public/build COPY docker/apache-vhost.conf /etc/apache2/sites-available/000-default.conf COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh \ && chown -R www-data:www-data storage bootstrap/cache \ && chmod -R ug+rwx storage bootstrap/cache EXPOSE 80 ENTRYPOINT ["entrypoint.sh"] CMD ["apache2-foreground"]